C++水仙花數的求法
阿新 • • 發佈:2019-02-06
題目描述
水仙花數是指一個N位正整數(N≥3),它的每個位上的數字的N次冪之和等於它本身。例如:153=1^3+5^3+3^3。
8208 = 8^4+2^4+0^4+8^4 這道題請寫出程式判斷輸入的數是否為水仙花數
輸入描述:
首先輸入正整數 n,表示需要判斷的數的個數 (1<=n<=100) 隨後每一行輸入一個數 Ai,對於每次輸入判斷 Ai 是否為水仙花數
輸出描述:
每次判斷 Ai 輸出判斷結果: 如果是,輸出 yes 否則輸出 no
輸入
3 111 153 222
輸出
no yes no
//用codeblock測試時pow函式有點問題,5的3次永遠是124,但是提交過了,注意水仙花數數字大於3位
#include <stdio.h>
#include <math.h>
int main(){
int n;
scanf("%d",&n);
while(n--){
int m,m1,count=1,sum=0,m2,m3;
scanf("%d",&m);
m1=m;
m3=m;
while(m1>9){
m1/=10;
count++;
}
while(m>9){
m2=m%10;
sum+=pow(m2,count);
m/=10;
}sum+=pow(m,count);
if(m3==sum){
printf("yes\n");
}
else{
printf("no\n");
}
}
return 0;
}