鱼C论坛

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

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

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

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

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

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 (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;
}


在课后作业验证尼科彻斯定理为什么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就全搞定了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

int main()
{
   int i,c=0;
   for(i=1;i<=40;i++)
   {
           int t=(i-1)*i+1;
           int sum=t*i+i*(i-1);
           if(i*i*i==sum) c++;
   }
   printf("%d\n",c);
   return 0;
}

既然是验证  那就直接验证好了  
想知道小甲鱼最近在做啥?请访问 -> 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就全搞定了

想知道小甲鱼最近在做啥?请访问 -> 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试试看,对不对。

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

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-3 12:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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