PTA水仙花数

该代码实现了一个程序,用于检测输入的两个整数m和n之间是否存在水仙数(即回文数),并在找到时打印出来。水仙数是指一个整数,其各位数字的五次幂之和等于它本身。代码首先定义了检查是否为水仙数的函数`narcissistic`,然后在`main`函数中调用该函数,并通过`PrintN`函数打印出区间内所有水仙数。
摘要由CSDN通过智能技术生成
#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;
}

/* 你的代码将被嵌在这里 */
#include <math.h>
int narcissistic( int number ){
     
    if(number>=10000){          //大于1万
    int hun,ten,inv,tho,tth;  
    tth=number/10000;      
    tho=number%10000/1000;  
    hun=number%1000/100;    
    ten=number%100/10;     
    inv=number%10;          
    if( pow(tth,5) + pow(tho,5) + pow(hun,5) + pow(ten,5) + pow(inv,5) == number){
        return 1;
    }else{
        return 0;
    }}
    if(number>=1000){       //大于一千
        int hun,ten,tho,tth;
        tth=number/1000;    
        tho=number%1000/100;
        hun=number%100/10;   
        ten=number%10;
    if( pow(tth,4) + pow(tho,4) + pow(hun,4) + pow(ten,4)  == number){
        return 1;
    }else{
        return 0;
    }}     
    if(number>=100){       //大于一百
        int hun,ten,inv;
        hun=number/100;
        ten=number/10%10;
        inv=number%10;
     if( pow(hun,3) + pow(ten,3) + pow(inv,3) == number){
        return 1;
    }else{
        return 0;
    }
    }    
}
void PrintN( int m, int n ){
    for(int i=m+1;i<n;i++){
        if(narcissistic(i))
             printf("%d\n",i);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值