问题:第一行输出1,第二行输出2,3;第三行输出4,5,6,以此类推下去,输入一个数,后面的不再输出; 问题分析:第2行的第一个数字比第一行大1,第三行的第一个数字比第二行大2,所以每一行的第一个数字是前一行的第一个加上前一行的行数; 第2行的第最后1个数字比第一行大2,第三行的最后一个数字比第二行大3,所以每一行的最后一个数字是前一行的最后一个加上当前前一行的行数; class Program { static void Main(string[] args) { PrintNum(300); Console.Read(); } static int start = 1; public static void PrintNum(int n) { int start =1; for (int i = 1; i <= 100; i++) { Console.Write(i+":"); for (int j = start; j <i+start; j++) { if (j > n) { break; } Console.Write(j+" "); } Console.WriteLine(); start += i; if (start>=n) { break; } } } } }