判断水仙花数

判断水仙花数

水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数,它的每个位上的数字的 3次幂之和 等于它本身

下面列举其他位数的自幂数名字
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
等等…

要判断一个数是不是自幂数,如一个三位数是不是水仙花数,首先
1、判断这个数是几位数。
2、把每一位数字拆开,进行位数次方运算(如124: 1^3 , 2^3 , 4^3,它是一个三位数,所以每一位进行三次方运算 )。
3、把每位数的位数次方加和(如124: 1+8+64)
4、用这个和与原数比较大小,相等则为自幂数

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{

int number= 0;   //存输入数字
int tmp = 0;
int sum = 0;
int count = 1;   //数字位数
printf("请输入数字");
scanf("%d",&number);

tmp = number;
while(tmp/10)    //这里计算一下数字位数,让程序可以根据位数计算水仙花数,四叶玫瑰数,五角星数等等
{
    count++;
    tmp = tmp/10;
}

int i = 0;
double sum1 = 0;   //为避免int型中5*5会出现24这类情况,所以定义为double型
tmp = number;
for(i=0; i<count; i++)
{
    sum1 = pow(tmp%10,count);   //pow(a,b) 计算a的b次方。在这里将这个数的每一位取出来,然后进行位数平方操作,然后加和,用于和原数比较
    tmp = tmp/10;
    sum = sum + sum1;
}
printf("和%d",sum);
if(sum==number)
    printf("它是自幂数");
else
    printf("它不是自幂数");
return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值