C++水仙花数的求法

来源:互联网 发布:centos pptp 无法连接 编辑:程序博客网 时间:2024/04/27 16:19

题目描述

水仙花数是指一个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

输入

3111153222

输出

noyesno

//用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;
}

原创粉丝点击