鱼C论坛

 找回密码
 立即注册
查看: 932|回复: 3

[已解决]水仙花数问题

[复制链接]
发表于 2020-9-11 16:08:29 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
int main(){
        int m,n;
        int e=0;
        while(scanf("%d %d",&m,&n)!=-1){
                int i;
                for(i=m;i<=n;i++){
                        int a,b,c,d;
                        a=i/100;//百位上的数
                        b=i%100;//去掉百位
                        c=b/10;//十位上
                        d=b%10;//个位上
                        if(i==(a*a*a+b*b*b+c*c*c)){
                                printf("%d",i);
                                e++;}
                }
                if(e==0){printf("no\n");}
                        else{printf("\n");}
        }
        return 0;
}

我从100到999只能打出来407这一个水仙花数,不知道哪里错了
最佳答案
2020-9-11 16:14:06
本帖最后由 sunrise085 于 2020-9-11 16:16 编辑

你的程序第13行有问题啊
abc并不是百位、十位和个位啊,你的十位是c,个位是d
  1. #include<stdio.h>
  2. int main(){
  3.     int m,n;
  4.     int e=0;
  5.     while(scanf("%d %d",&m,&n)!=-1){
  6.         int i;
  7.         for(i=m;i<=n;i++){
  8.             int a,b,c,d;
  9.             a=i/100;//百位上的数
  10.             b=i%100;//去掉百位
  11.             c=b/10;//十位上
  12.             d=b%10;//个位上
  13.             if(i==(a*a*a+c*c*c+d*d*d)){//这里搞错啦,b不是十位,c才是十位,d是个位
  14.                 printf("%d ",i);
  15.                 e++;}
  16.         }
  17.         if(e==0){printf("no\n");}
  18.         else{printf("\n");}
  19.     }
  20.     return 0;
  21. }
复制代码
QQ截图20200911160400.png
QQ截图20200911160442.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-11 16:14:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-9-11 16:16 编辑

你的程序第13行有问题啊
abc并不是百位、十位和个位啊,你的十位是c,个位是d
  1. #include<stdio.h>
  2. int main(){
  3.     int m,n;
  4.     int e=0;
  5.     while(scanf("%d %d",&m,&n)!=-1){
  6.         int i;
  7.         for(i=m;i<=n;i++){
  8.             int a,b,c,d;
  9.             a=i/100;//百位上的数
  10.             b=i%100;//去掉百位
  11.             c=b/10;//十位上
  12.             d=b%10;//个位上
  13.             if(i==(a*a*a+c*c*c+d*d*d)){//这里搞错啦,b不是十位,c才是十位,d是个位
  14.                 printf("%d ",i);
  15.                 e++;}
  16.         }
  17.         if(e==0){printf("no\n");}
  18.         else{printf("\n");}
  19.     }
  20.     return 0;
  21. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-9-11 16:19:39 | 显示全部楼层
sunrise085 发表于 2020-9-11 16:14
你的程序第13行有问题啊
abc并不是百位、十位和个位啊,你的十位是c,个位是d

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

使用道具 举报

 楼主| 发表于 2020-9-11 18:41:36 | 显示全部楼层
sunrise085 发表于 2020-9-11 16:14
你的程序第13行有问题啊
abc并不是百位、十位和个位啊,你的十位是c,个位是d

我脑瘫了,不好意思,麻烦你了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 16:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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