鱼C论坛

 找回密码
 立即注册
查看: 2156|回复: 4

[已解决]新手的每日一问

[复制链接]
发表于 2019-3-18 09:19:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i, j, n, cubed, sum = 0;

  5.         printf("请输入一个整数:");
  6.         scanf("%d", &n);

  7.         cubed = n * n * n;

  8.         for (i = 1; i < cubed; i += 2)
  9.         {
  10.                 for (j = i; j < cubed; j += 2)
  11.                 {
  12.                         sum += j;
  13.                         if (sum == cubed)
  14.                         {
  15.                                 if [color=Red](j - i > 4)[/color]
  16.                                 {
  17.                                         printf("%d = %d + %d ... + %d\n", cubed, i, i+2, j);
  18.                                 }
  19.                                 else
  20.                                 {
  21.                                         printf("%d = %d + %d + %d\n", cubed, i, i+2, i+4);
  22.                                 }
  23.                                 goto FINDIT;
  24.                         }

  25.                         if (sum > cubed)
  26.                         {
  27.                                 sum = 0;
  28.                                 break;
  29.                         }
  30.                 }
  31.         }

  32. FINDIT:

  33.         return 0;
  34. }
复制代码



在课后作业验证尼科彻斯定理为什么j-i>4而不是大于3(虽然自己试了确实也需要大于4 )
最佳答案
2019-3-18 11:20:43
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就全搞定了

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-18 11:12:52 | 显示全部楼层
  1. #include<stdio.h>

  2. int main()
  3. {
  4.    int i,c=0;
  5.    for(i=1;i<=40;i++)
  6.    {
  7.            int t=(i-1)*i+1;
  8.            int sum=t*i+i*(i-1);
  9.            if(i*i*i==sum) c++;
  10.    }
  11.    printf("%d\n",c);
  12.    return 0;
  13. }
复制代码


既然是验证  那就直接验证好了  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-18 11:20:43 | 显示全部楼层    本楼为最佳答案   
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就全搞定了

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-20 22:47:47 | 显示全部楼层
ba21 发表于 2019-3-18 11:20
2的三次方=3+5 ; 3的三次方=7+9+11; 4的三次方=13+15+17+19;

不信你输个2试试看,对不对。

好的,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-21 15:12:59 | 显示全部楼层
wp231957 发表于 2019-3-18 11:12
既然是验证  那就直接验证好了

谢咯
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 23:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表