木木牙 2020-09-03 03:02 采纳率: 0%
浏览 82

求水仙花数,哪里的问题,结果出不来

水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例 如:153 = 13 + 53+ 33。 本题要求编写程序,计算所有N位水仙花数。

抱歉,刚学,不太懂,请问是哪里出问题了,求指教

#include <stdio.h>
#include <stdlib.h>
#include<math.h>//pow函数所需
int main()
{
    int n;//n位数
    scanf("%d",n);//输入位数
    int m=1;//用于拆数的运算
    int sum=0;//用于存放每位三次方的总和
    while (n!=0)
    {
        m*=10;  //假如n=3,m最后将等于1000
        n-=1;
    }

 printf("m=%d ",m);//查看m的最终值

    for (int i=m/10;i<m;i++) //假设n=3,i的初始值便为100,要求循环条件为i<1000
    {
       for (int e=1;e<m;e*=10)  //假设n=3,循环条件为e<1000,所以会进行3轮循环
        {
            sum+=pow(i/e%10,3);  //将i/e的三次方,暂存进sum
            /* 假设i=123
            第一轮 e=1 进入循环
                sum=sum+(123/1%10)^3也就是sum=sum+(3)^3
                e=e*10=10
            第二轮 e=10
                sum=sum+(123/10%10)^3也就是sum=sum+(2)^3
                e=e*10=100
            第三轮 e=100
                sum=sum+(123/100%10)^3也就是sum=sum+(1)^3
                e=e*10=1000
                因为e=1000=m,所以无法进入循环/*/


             printf("sum=%d ",sum);//查看sum中的数,可忽略
        }
        if(sum==i)  //如果这个数各位的三次方的和于原本的数相等
        {
            printf("%d ",i);  //输出这个数
        }
        sum=0;//容器归零
    }
    return 0;
}

运行结果
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-03 09:06
    关注

    sum=sum+(123/1%10)^3也就是sum=sum+(3)^3
    你这里123是写死的

    重新写一个

    #include "stdio.h"
    #include "math.h"
    void main()
    {
    
        int d,a;
        double n,x,y;
        scanf("%lf",&n);
        x=pow(10,n-1);
        y=pow(10,n);
        for(a=x;a<y;a++)
        {
            int b=a,i,s=0;
            for(i=1;i<=n;i++)
            {
                d=b%10;
                s=s+pow(d,n);
                b=b/10;
            }
            if(a==s)
            printf("%d\n",a);
        }
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表