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