| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- #include <stdio.h>
 
  
- int main()
 
 - {
 
 -         int i, j, n, cubed, sum = 0;
 
  
-         printf("请输入一个整数:");
 
 -         scanf("%d", &n);
 
  
-         cubed = n * n * n;
 
  
-         for (i = 1; i < cubed; i += 2)
 
 -         {
 
 -                 for (j = i; j < cubed; j += 2)
 
 -                 {
 
 -                         sum += j;
 
 -                         if (sum == cubed)
 
 -                         {
 
 -                                 if [color=Red](j - i > 4)[/color]
 
 -                                 {
 
 -                                         printf("%d = %d + %d ... + %d\n", cubed, i, i+2, j);
 
 -                                 }
 
 -                                 else
 
 -                                 {
 
 -                                         printf("%d = %d + %d + %d\n", cubed, i, i+2, i+4);
 
 -                                 }
 
 -                                 goto FINDIT;
 
 -                         }
 
  
-                         if (sum > cubed)
 
 -                         {
 
 -                                 sum = 0;
 
 -                                 break;
 
 -                         }
 
 -                 }
 
 -         }
 
  
- FINDIT:
 
  
-         return 0;
 
 - }
 
  复制代码 
 
 
在课后作业验证尼科彻斯定理为什么j-i>4而不是大于3(虽然自己试了确实也需要大于4  )
2的三次方=3+5 ; 3的三次方=7+9+11; 4的三次方=13+15+17+19; 
 
不信你输个2试试看,对不对。 
(j - i > 4) 只是为了输出的时候以什么样子输出,小于等于4位就 
这样输出: 
请输入一个整数:3 
27 = 7 + 9 + 11 
大于4位则这样输出,加几个..中间的用...省略 
请输入一个整数:8 
512 = 17 + 19 ... + 47 
 
换句话说,这里你想改成怎么输出都可以,多几个if就全搞定了 
 
 
 
 
 |   
 
 
 
 |