【新手求助】【验证尼科彻斯定理】请大家帮忙检查一下代码完成作业
代码如下:总是运行不了
#include<stdio.h>
#include<math.h>
int main()
{
int b,num,sum,i,j;
printf("请输入一个整数:");
int a;
int count;
scanf("%d,&b");
num=pow(b,3);
for(i=1,sum=0;i<num;i=i+2)
{
for(count=0,j=i;sum<num;i=i+2)
{
sum=sum+j;
count++;
a=j;
if(sum==num)
{
printf("%d=%d+%d+.......+%d\n",num,a,a,a);
goto FINDIT;
}
if(sum>num)
{
break;
}
}
}
FINDIT:
return 0;
} scanf("%d",&b); ba21 发表于 2018-3-22 20:18
scanf("%d",&b);
谢谢。但是程序仍然达不到效果 本帖最后由 ba21 于 2018-3-22 20:51 编辑
hs.xx 发表于 2018-3-22 20:28
谢谢。但是程序仍然达不到效果
找原因咯。
1 3 5 7 9.....
先1 + 3 + 5 +7 + 9 ....到自己。没有
再3 + 5 + 7 + 9....到自己。没有
再5 + 7 + 9 + ... 到自己。
。。。。。
/*
尼科彻斯定理可以叙述为:任何一个整数的立方都可以表示成一串连续的奇数的和。
需要注意的是,这些奇数一定是连续的,如:1,3,5,7,9...
*/
#include<stdio.h>
int main()
{
int n, max, sum;
int i, j;
printf("请输入一个整数:");
scanf("%d", &n);
max=n * n * n;
sum=0;
for(i=1;i<max;i=i+2)
{
for(j=i;j<max;j=j+2)
{
sum += j;
if(sum == max)
{
printf("%d=%d+%d+.......+%d\n",max,i,i+2,j);
goto FINDIT;
}
if(sum>max)
{
sum = 0;
break;
}
}
}
FINDIT:
return 0;
}
页:
[1]