FireQ 发表于 2020-4-7 10:27:34

有关求水仙花数的问题

请问为啥我这个3位数水仙花数少一个153 其他位数的都对呢
感谢各位大神






int n;
    scanf("%d",&n);
    int x=1,y=1,sum;
    int o=n-1,p=n;
    while(o>0){
      x*=10;
      o--;
    }
    while(p>0){
      y*=10;
      p--;
    }y-=1;

    int i,j,k,a,b;
    for(i=x;i<=y;i++){
      a=i;b=i;sum=0;
      for(j=n;j>0;j--){
            b=a%10;
            a/=10;
            sum+=pow(b,n);

      }if(sum==i){
            printf("%d\n",sum);
      }


    }

sunrise085 发表于 2020-4-7 10:42:45

你确定你的代码贴全了?
能运行?
补全之后没发现少那个153啊
#include <stdio.h>
#include"math.h"
int main()
{
        int n;
    scanf("%d",&n);
    int x=1,y=1,sum;
    int o=n-1,p=n;
    while(o>0){
      x*=10;
      o--;
    }
    while(p>0){
      y*=10;
      p--;
    }
    y-=1;

    int i,j,k,a,b;
    for(i=x;i<=y;i++){
      a=i;b=i;sum=0;
      for(j=n;j>0;j--){
            b=a%10;
            a/=10;
            sum+=pow(b,n);

      }
                if(sum==i){
            printf("%d\n",sum);
      }
    }
    return 0;
}

墨羽岚 发表于 2020-4-7 11:36:57

sunrise085 发表于 2020-4-7 10:42
你确定你的代码贴全了?
能运行?
补全之后没发现少那个153啊

不知道为啥我运行不了这段代码
随便输入一个数后回车就直接Press any key to continue...
然后输入23就卡住,只能手动关闭
(顺便那个k是未被使用的量,应该可以删除)

sunrise085 发表于 2020-4-7 11:44:44

墨羽岚 发表于 2020-4-7 11:36
不知道为啥我运行不了这段代码
随便输入一个数后回车就直接Press any key to continue...
然后输入23就 ...

n是位数
三位数的水仙花数,就输入3

墨羽岚 发表于 2020-4-7 11:45:31

sunrise085 发表于 2020-4-7 11:44
n是位数
三位数的水仙花数,就输入3

{:10_247:}我审题不仔细{:10_292:}
页: [1]
查看完整版本: 有关求水仙花数的问题