原题链接:C语言训练-尼科彻斯定理
解题思路:
先观察给出的样例,若为奇数,则中间的数为m^2,
若为偶数,则中间两个数为m^2-1,m^2+1。
然后中间数两边对称的数相加等于2*m^2,所以定理成立。
再观察,无论输入的是奇数还是偶数,输出的第一个数都是
m^2-m+1,所以再从第一个数开始,每个数+2,
加m-1次,再输出就行了。
注意事项:
最后一个数后面不能有空格,否则判错。
刚开始我是这样写的,虽然说跟结果看上去一样,但因为最后有一个空格,就判错了。
#include<stdio.h> int main() { int m,n,i; scanf("%d",&m); printf("%d*%d*%d=%d=",m,m,m,m*m*m); for(i=0;i<m*2;i+=2) { n=m*m-m+1+i; printf("%d+",n); } printf("\b "); return 0; }
参考代码:
#include<stdio.h> int main() { int m,n,i; scanf("%d",&m); printf("%d*%d*%d=%d=",m,m,m,m*m*m); for(i=0;i<m*2-2;i+=2) { n=m*m-m+1+i; printf("%d+",n); } printf("%d",m*m+m-1); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复