判断水仙花数(n次方,不限于3次方)

“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153每一位的三次方加起来为153,则153是一个“水仙花数”。

#include <stdio.h>
#include<math.h>
int cc(int b, int c)

{
	int k;

	 k = b % 10;

	if (b == 0)

	{

		return 0;

	}

	return cc(b / 10, c) + pow(k,c);//递归算出每一位的n次方和


}

int SXH(int a)

{
	int k=a;
	
	int c=0;
	while (k)
	{
		c++;
		k= k / 10;
	}
	if (cc(a, c) == a)//判断是否为水仙花数

	{

		return 1;

	}

	return 0;

}


int main()

{

	int i;

	for (i = 0; i <= 10000; i++)

	{

		if (SXH(i) == 1)

		{

			printf("%d\n", i);

		}

	}


}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值