打印一个“回”字图形的算法
来源:互联网 发布:知乎 兵哥哥有毒 编辑:程序博客网 时间:2024/05/01 06:11
要求效果:
我的算法:
牛人算法:
我的算法:
- private static void Print(int n)
- {
- int rank = GetRank(n);
- int[,] matrix = new int[rank, rank];
- for (int i = n; i > 0; i--)
- {
- SetMatric(matrix, rank, i);
- }
- PrintResult(rank, matrix);
- }
- private static int GetRank(int n)
- {
- return n * 2 - 1;
- }
- private static void SetMatric(int[,] matrix, int rank, int n)
- {
- int row1 = Number - n;
- int row2 = rank - (Number - n) - 1;
- int colOffice = Number - n;
- int count = GetRank(n);
- for (int i = 0; i < count; i++)
- {
- matrix[row1, colOffice + i] = n; // 上面行
- matrix[row2, colOffice + i] = n;// 下面行
- if (i < count - 2)
- {
- matrix[row1 + i + 1, colOffice] = n;// 左列
- matrix[row1 + i + 1, rank - colOffice - 1] = n;// 右列
- }
- }
- }
- private static void PrintResult(int rank, int[,] matrix)
- {
- for (int i = 0; i < rank; i++)
- {
- for (int j = 0; j < rank; j++)
- {
- Console.Write(matrix[i, j]);
- }
- Console.Write(Environment.NewLine);
- }
- }
- static void printbox(int num)
- {
- for (int i = 0; i < num * 2 - 1; i++)
- {
- for (int j = 0; j < num * 2 - 1; j++)
- {
- Console.Write(Math.Max(Math.Abs(i - num + 1), Math.Abs(j - num + 1)) + 1);
- }
- Console.WriteLine();
- }
- }
- 打印一个“回”字图形的算法
- 打印一个“回”字图形
- 打印一个图形
- 关于打印一个有趣的数字图形的问题
- 算法训练 打印下述图形
- 一个打印有规律图形的c程序。
- 算法示例之打印有规律的图形
- 简单的打印图形
- 算法训练 4-1打印下述图形
- 算法训练 4-1打印下述图形
- 算法训练 4-1打印下述图形
- C#打印简单的图形
- 有趣的图形打印1
- 有趣的图形打印2
- 一个图形的算法网站: http://visualgo.net/
- 从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形
- 打印图形
- 打印图形
- symbian知识一---- Symbian OS C++程序员编码诀窍 (一)
- (转)CString实现原理
- sql server系统表详细说明
- C# 程序设计第一讲
- 在C#中使用COM+实现事务控制
- 打印一个“回”字图形的算法
- 社交要点
- 集合-Set类
- 嵌入式系统的动态电源管理技术
- 做了一个手机视频网站
- 孩子各个年龄段易发生的疾病
- uml
- 学习笔记
- How to repro bugs?