解题思路:
例如N=5
(1)1 3 6 10 15 每一个数字分别相差是2-3-4-5
(2)2 5 9 14 每一个数字分别相差3-4-5
(3)4 8 13 每一个数字分别相差4-5
(4)7 12 每一个数字分别相差5
(5)11
每列相差1-2-3-4;
最长的行只有5个数值且行数只有5行;
从规律得知:最大的相差值为5;
所以用一个循环就可以了;
注意事项:
题目要求最后一个数字不需要空格,所以要单独提出且换行;
打印的sum值;新的一行开始必须清0;
需要分清楚先赋值还是先运算;
参考代码:
#include <stdio.h> int main() { int i; int sum=0,n; int a=0,b=0,c=0; scanf("%d",&n); for(i=1;i<=n;i++) { if(i!=n) { sum+=i; printf("%d ",sum); } else { sum+=i; printf("%d\n",sum); //最后一个不需要空格 sum=0; //需要清0 i=++a;//先加再赋值,不断累加行的差值 c+=b++; //不断累加列差值 sum=c; } } }
0.0分
0 人评分
C语言训练-排序问题<2> (C++代码)(sort函数)浏览:1720 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:855 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:696 |
WU-拆分位数 (C++代码)浏览:819 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:756 |
整除问题 (C语言代码)浏览:594 |
简单的a+b (C语言代码)浏览:857 |
数列问题 (C语言代码)浏览:1068 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:604 |
WU-C语言程序设计教程(第三版)课后习题12.3 (C++代码)浏览:925 |