剧号 2020-11-17 20:54 采纳率: 50%
浏览 2904
已采纳

C语言PTA习题5-6 使用函数输出水仙花数 (20分)

int narcissistic( int number )
{
    int h,x=number,sum=0;
    while(x>0)
    {
        h=x%10;
        x=x/10;
        sum=sum+h*h*h;
    }
    if(sum==number)
        return 1;
    else
        return 0;
}
void PrintN( int m, int n )
{
    int i;
    for (i=m+1;i<n;i++)
    {
        if(narcissistic(i)==1)
            printf ("%d\n",i);
    }
}

,为啥我在pta平台中一直显示答案错误,求大佬解答,谢谢

  • 写回答

3条回答 默认 最新

  • Y_cen 2020-11-17 23:41
    关注

    #include <stdio.h>

    int narcissistic( int number );
    void PrintN( int m, int n );

    int main()
    {
        int m, n;

        scanf("%d %d", &m, &n);
        if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
        PrintN(m, n);
        if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);

        return 0;
    }

    /* 你的代码将被嵌在这里 */
    int narcissistic( int number )
    {
        int h,x=number,sum=0;
        int count = 0;//位数 
        while(x>0){//计算位数 ,你只考虑了三位数的情况(也可能没看清楚题目?) 
            x/=10;
            count++;
        } 
        x=number;//重置 
        
        while(x>0)
        {
            int k=1;
            for(int i=1;i<=count;i++){//N次幂 
                k*=x%10;
            }
            sum=sum+k;
            x=x/10;
        }
        if(sum==number)
            return 1;
        else
            return 0;
    }
    void PrintN( int m, int n )
    {
        int i;
        for (i=m+1;i<n;i++)
        {
            if(narcissistic(i)==1)
                printf ("%d\n",i);
        }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题