鱼C论坛

 找回密码
 立即注册
查看: 1576|回复: 13

[已解决]验证尼科彻斯定理

[复制链接]
发表于 2019-12-19 23:05:08 | 显示全部楼层 |阅读模式

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

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

x
请问第19行的条件为啥是j-i>4呢?这个不懂。。。
#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 (j - i > 4)
                                {
                                        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;
}
最佳答案
2019-12-20 12:15:07
#include <stdio.h>
#include <stdlib.h>
int main()
{  int m,i,j=1,t=0;//
   scanf("%d",&m);
   m=m*m*m;
   for (i=j;i<m;i=i+2)
   {   t=t+i;
       if (t>m)
           {  t=0;
              i=j;
                  j=j+2;
           }
           if (t==m)
           break;  
   }
        for (t=j;t<=i;t=t+2)
          printf("%d\t",t);
        system("pause");
        return 0;
}
楼主看看我的
问题.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-20 12:15:07 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>
#include <stdlib.h>
int main()
{  int m,i,j=1,t=0;//
   scanf("%d",&m);
   m=m*m*m;
   for (i=j;i<m;i=i+2)
   {   t=t+i;
       if (t>m)
           {  t=0;
              i=j;
                  j=j+2;
           }
           if (t==m)
           break;  
   }
        for (t=j;t<=i;t=t+2)
          printf("%d\t",t);
        system("pause");
        return 0;
}
楼主看看我的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-20 12:27:18 | 显示全部楼层
if (j-i>4)  这个判断的意思是判断元素的个数是否大于3    27=7+9+11  在这个等式中  j 的值为 11  而  i   的值为 7  如果j-i>4成立则说明元素个数大于3
  这个只是输出形式的不同罢了  你仔细看下  if和else后面的输出语句,仔细比较下他们的不同就懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-20 14:16:24 | 显示全部楼层
大尾巴 发表于 2019-12-20 12:15
#include
#include
int main()

老哥,你这个好呀,你大几了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-21 19:35:37 | 显示全部楼层
最后的魁拔 发表于 2019-12-20 14:16
老哥,你这个好呀,你大几了啊

哦 谢谢你的肯定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-21 20:51:24 | 显示全部楼层

老哥,大几的,我更想知道你是咋学的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-22 00:01:56 | 显示全部楼层
瞎学的,其实你发上来的代码更严谨啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-22 08:46:17 | 显示全部楼层
大尾巴 发表于 2019-12-22 00:01
瞎学的,其实你发上来的代码更严谨啊

那个是答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-22 21:57:45 | 显示全部楼层
你大几了?感觉这论坛有点冷清啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-22 21:59:33 | 显示全部楼层
大尾巴 发表于 2019-12-22 21:57
你大几了?感觉这论坛有点冷清啊

大二了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-22 22:12:24 | 显示全部楼层
我在论坛的问题都没人看,你帮我看下,
好吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-22 22:19:41 | 显示全部楼层
大尾巴 发表于 2019-12-22 22:12
我在论坛的问题都没人看,你帮我看下,
好吗

那个问题呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-23 10:59:45 | 显示全部楼层
你看我发布的  数组指针与指针数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-23 12:02:12 | 显示全部楼层
大尾巴 发表于 2019-12-23 10:59
你看我发布的  数组指针与指针数组

老哥,我还没学到那个,你可以再发一下,
另外,老哥,你大几了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 03:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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