如何通过循环函数生成指定的数字序列?
代码修正:生成指定数字序列
目标序列
1 2 4 8 16
2 6 18 54 162
3 12 48 192 768
4 20 100 500 2500
5 30 180 1080 6480
6 42 294 2058 14406
原错误代码
using System; class Program { static void Main(string[] args) { int size = 6; for (int i = 1; i <= size; i++) { int num = i; if(num == 1) { for (int j = 1; j < size; j++) { Console.Write(num + " "); num *= 2; } Console.WriteLine(); }else{ int num2 = 2; for (int j = 1; j < size; j++) { Console.Write(num2 + " "); num2 *= 3; } Console.WriteLine(); } } } }
问题分析
原代码逻辑错误:仅对第一行做特殊处理,其余行全部使用固定起始值2并乘以3,完全不符合目标序列规律。目标序列的核心规则是:
- 每行第一个数为当前行号
i(1到6) - 每行后续数字都是前一个数字乘以
i+1,每行共输出5个数字
修改后的代码
using System; class Program { static void Main(string[] args) { int rowCount = 6; // 总行数 int colCount = 5; // 每行数字个数 for (int i = 1; i <= rowCount; i++) { int currentNum = i; int multiplier = i + 1; // 每行的固定乘数 for (int j = 1; j <= colCount; j++) { Console.Write(currentNum + " "); currentNum *= multiplier; } Console.WriteLine(); } } }
说明
- 用
rowCount和colCount分别控制总行数与每行数字数,代码更易维护 - 每行起始值为当前行号
i,乘数固定为i+1,完全匹配目标序列生成规则 - 统一循环逻辑,无需特殊判断第一行,避免分支错误
内容的提问来源于stack exchange,提问作者codeTester-
相关产品推荐
相关产品推荐

