关于三角形算法的实现
一个朋友出了道题, 要求输出如下图形:
1
2 2 2
3 3 3 3 3
4 4 4
5
说是最终可以用两个循环完成, 自己也就试了试:
现将结果发布到下面:
一. 最原始的实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public void Test() { int N = 5; for ( int i = 1; i <= N; i++) { if (i < N / 2 + 1) { for ( int j = i; j < N / 2 + 1; j++) Console.Write( " " ); for ( int j = 1; j <= i * 2 - 1; j++) Console.Write(i.ToString().PadRight(3, ' ' )); Console.WriteLine(); } else { for ( int j = N / 2 + 2; j <= i; j++) Console.Write( " " ); for ( int j = i; j <= N * 2 - i; j++) Console.Write(i.ToString().PadRight(3, ' ' )); Console.WriteLine(); } } } |
二. 两个循环的实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public void Test2() { int N = 21; for ( int i = 1; i <= N; i++) { for ( int j = 1; j <= N; j++) { if (j + i <= N / 2 + 1 || j <= i - (N / 2 + 1)) Console.Write( string .Empty.PadRight(N.ToString().Length + 1, ' ' )); else if ((j > N / 2 + 1 - i && j < N / 2 + 1 + i && i <= N / 2 + 1) || (j > i - (N / 2 + 1) && j < N / 2 + 1 + N - i + 1 && i > N / 2 + 1)) Console.Write(i.ToString().PadRight(N.ToString().Length + 1, ' ' )); } Console.WriteLine(); } } |
请求大家指正.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架