今天我们来翻译一个题目,其实是我不会写,在网上找的程序,然后稍微修改了一下。
题目是:对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。
题目的意思是证明2-20之间随便一个数的立方都有连续的奇数的和与之相等。
先从一开始找,找到不到再从三开始找,如此循环,知道找到为止,找不到就说明这个结论是错的
下面附上代码
#include <stdio.h>
int main()
{
int n;
int i;
int j;
int p;
int k;
int sum;
for(n = 2; n <= 20; n++)
{
k = n * n * n;
for(i = 1; i < k/2; i += 2)
{
for(j = i,sum = 0; sum < k; j += 2 )
{
sum += j;
}
if(sum == k)
{
printf("%d*%d*%d = %d =",n,n,n,sum);
for(p = i; p <= j - 2; p += 2)
{
if(p != j-2)
{
printf("%d+",p);
}
else
{
printf("%d",p);
}
}
printf("\b\n");
break;
}
}
if(i >= k/2)
{
printf("\nerror!");
}
}
return 0;
}