|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
总是运行不了
#include<stdio.h>
#include<math.h>
int main()
{
int b,num,sum,i,j;
printf("请输入一个整数:");
int a[999];
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[count]=j;
if(sum==num)
{
printf("%d=%d+%d+.......+%d\n",num,a[0],a[1],a[count]);
goto FINDIT;
}
if(sum>num)
{
break;
}
}
}
FINDIT:
return 0;
}
本帖最后由 ba21 于 2018-3-22 20:51 编辑
找原因咯。
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;
-
- }
复制代码
|
|