今天我们来翻译一个题目,其实是我不会写,在网上找的程序,然后稍微修改了一下。
题目是:对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[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; }