程序要求:对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。
如果要利用我注释中的算法,必须每一次循环中都对sum赋初值,才能保证程序正确运行;如果缺失了这一步,最终程序的sum是所有满足题目要求的数的立方之和。
由此可知,如果我们用到循环结构,对于循环内条件的设定和循环比较的值,必须着重注意,细小的错误也会导致我们程序的错误。并且,基于惯性思维,我们很难查出自己在上面两类中的错误。
/*****************************************************
copyright (C), 2014-2015, Lighting Studio.Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
int main()
{
int i,m,n,j;
longsum=0;
for(i=2;i<21;i++)
{
sum=0;
m=(i*i)-i+1;
n=(i*i)+i-1;
if((m%2)&&(n%2))
{
printf("%d*%d*%d=0",i,i,i);
for(j=m;j<=n;j=j+2)
{
printf("+%d",j);
}
printf("\n");
}
/* for(j=m;j<=n;j=j+2)
{
sum=sum+j;
}
if(sum==(i*i*i))
{
printf("%d\n",i);
continue;
}*/
}
return 0;
}