鱼C论坛

 找回密码
 立即注册
查看: 1373|回复: 7

[已解决]打印100到1000所有水仙花数

[复制链接]
发表于 2020-12-29 15:24:01 | 显示全部楼层 |阅读模式

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

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

x
#include  <stdio.h>
#include  <stdlib.h>

main()
{
        int i,sum=0,temp=0;
        for (i = 100; i < 1000; i++)
        {
                 int init = i;
                 while (i!=0)
                 {
                         temp = i % 10;
                         sum += temp * temp * temp;
                         i = i / 10;
                }
                 if (init ==sum)
                 {
                         printf("%d\n", init);
                 }
               
        }
        system("pause");
        return 0;

}




最佳答案
2020-12-29 22:24:45
本帖最后由 风过无痕1989 于 2020-12-30 01:04 编辑

这个程序才是你的程序的初衷吧:
  1. #include  <stdio.h>
  2. #include  <stdlib.h>

  3. main()
  4. {
  5.         int i, sum = 0, temp = 0;
  6.         for (i = 100; i < 1000; i++)
  7.         {
  8.                 int init = i;            // 不能用循环变量去运算,换用 init 去运算
  9.                 while (init != 0)
  10.                 {
  11.                         temp = init % 10;
  12.                         sum += temp * temp * temp;
  13.                         init = init / 10;
  14.                 }
  15.                 if (i == sum)           // 根据水仙花数的定义,其立方和等于该数
  16.                 {
  17.                         printf("%d\n", i);
  18.                 }
  19.                 sum = 0;               // 一个数求完后,其立方和应初始化,为下一个数作准备
  20.         }
  21.         system("pause");
  22.         return 0;

  23. }
复制代码


153
370
371
407
请按任意键继续 。 。 。


评分

参与人数 1鱼币 -2 收起 理由
心驰神往 -2 问题没解决?

查看全部评分

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

使用道具 举报

发表于 2020-12-29 15:40:44 | 显示全部楼层
66666666
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-29 16:12:22 | 显示全部楼层

大佬们 帮我看看 我这个代码为啥不对啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 18:23:14 | 显示全部楼层
定义喜剧 发表于 2020-12-29 16:12
大佬们 帮我看看 我这个代码为啥不对啊

temp = i % 10;   //temp为个位数
sum += temp * temp * temp;   //  ??什么鬼?
i = i / 10;    //  i为十位数
这几行错了。
改正为:
int n,m,k;
n=i%10;  //n为个位数
m=i/100;  //m为百位数
k=(i-m*100)/10  //k为十位数
sum+=n*n*n+m*m*m+k*k*k;


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

使用道具 举报

发表于 2020-12-29 18:37:32 | 显示全部楼层
推荐视频:https://www.bilibili.com/video/BV18J411k7w2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 19:05:58 | 显示全部楼层
sum没有清零,在第二次循环是sum还是上一次的值,必须每次归零
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 22:20:10 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-12-30 00:47 编辑
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int m,bai,shi,ge;
  5.         for (m = 100;m < 1000;m++)
  6.         {
  7.                 bai = m / 100;
  8.                 shi = (m - bai * 100) / 10;
  9.                 ge = m % 10;
  10.                 if(m == bai * bai * bai + shi * shi * shi + ge * ge * ge)
  11.                 {
  12.                     printf("%d\n",m);
  13.                 }
  14.         }
  15. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 22:24:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2020-12-30 01:04 编辑

这个程序才是你的程序的初衷吧:
  1. #include  <stdio.h>
  2. #include  <stdlib.h>

  3. main()
  4. {
  5.         int i, sum = 0, temp = 0;
  6.         for (i = 100; i < 1000; i++)
  7.         {
  8.                 int init = i;            // 不能用循环变量去运算,换用 init 去运算
  9.                 while (init != 0)
  10.                 {
  11.                         temp = init % 10;
  12.                         sum += temp * temp * temp;
  13.                         init = init / 10;
  14.                 }
  15.                 if (i == sum)           // 根据水仙花数的定义,其立方和等于该数
  16.                 {
  17.                         printf("%d\n", i);
  18.                 }
  19.                 sum = 0;               // 一个数求完后,其立方和应初始化,为下一个数作准备
  20.         }
  21.         system("pause");
  22.         return 0;

  23. }
复制代码


153
370
371
407
请按任意键继续 。 。 。


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-3 16:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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