| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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;
 
 -         
 
 - }
 
 
  复制代码 
 
 
 
 |   
 
 
 
 |