用C语言证明任何一个自然数的立方等于 N 个连续奇数之和

例如:1*1*1 = 1;
2*2*2 = 3+5;
3*3*3 =7+9+11;
...
通过编程来证明,并且输入一个数要求输出对应的奇数
比如:我输入3
则输出应该为:7 9 11.

正确答案来了,在TC2下调试通过:

#include <stdio.h>

int test(int j,int i){
int k,s;
s=0;
for (k=i;k<j;k+=2){
s+=k;
if (s>j) break;
if (s==j) return k;
}
return 0;
}

void out_list(int i, int k){
int j,x;
x=32;
for (j=i;j<=k;j+=2){
printf("%c%d",x,j);
x='+';
}
}

void main()
{
int x,y,i,j,k;
scanf("%d",&x);
y=x*x*x;
for (j=1;j<y;j+=2)
if((k=test(y,j))!=0){
printf("%d^3=%d=",x,y);
out_list(j,k);
printf("\n");
break;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-29
正确答案来了,在TC2下调试通过:
#include
<stdio.h>
int
test(int
j,int
i){
int
k,s;
s=0;
for
(k=i;k<j;k+=2){
s+=k;
if
(s>j)
break;
if
(s==j)
return
k;
}
return
0;
}
void
out_list(int
i,
int
k){
int
j,x;
x=32;
for
(j=i;j<=k;j+=2){
printf("%c%d",x,j);
x='+';
}
}
void
main()
{
int
x,y,i,j,k;
scanf("%d",&x);
y=x*x*x;
for
(j=1;j<y;j+=2)
if((k=test(y,j))!=0){
printf("%d^3=%d=",x,y);
out_list(j,k);
printf("\n");
break;
}
}
第2个回答  2007-07-02
他说得对