题解 1127: C语言训练-尼科彻斯定理

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

C语言训练-尼科彻斯定理 (C语言代码)简单,易懂

解题思路:我们可以设置一个while(1)循环来帮助我们从1开始寻找我们需要的连续奇数串的开头,在while(1)循环中我们可以利用一个for循环求相应开头的m个奇数组成的奇数串的和,记为sum。当我们所求的奇数串的和sum==M(m的立方)的时候我们使用一个if语句if(sum==M)来跳出循环,

。。好像还可以。。:C语言训练-尼科彻斯定理 (C语言代码)

解题思路:先观察给出的样例,若为奇数,则中间的数为m^2,若为偶数,则中间两个数为m^2-1,m^2+1。然后中间数两边对称的数相加等于2*m^2,所以定理成立。再观察,无论输入的是奇数还是偶数,输出的第一个数都是m^2-m+1,所以再从第一个数开始,每个数+2,加m-1次,再输出就行了。