华为oj---水仙花数(次幂函数)



水仙花数又称阿姆斯特朗数。

水仙花数是指一个n 位数( n3 ),它的每个位上的数字的n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)

求输入的数字是否为水仙花数

#include <stdlib.h>
#include "oj.h"
#include <math.h>
using namespace std;
// 功能:判断输入 nValue 是否为水仙花数
// 输入: nValue为正整数
// 输出:无
// 返回:如果输入为水仙花数,返回1,否则返回0
unsigned int IsDaffodilNum(unsigned int  nValue)
{
	int n = 0;
	unsigned int a = nValue;
	unsigned int b = a;
	while (a) {
		a /= 10;
		n++;
	}
	if (n<3) {
		return 0;
	}
	unsigned int add = 0;
	while (b) {
		int co = b % 10;
		add += pow(co,n);
		b /= 10;
	}
	if (add==nValue) {
		return 1;
	}
	return 0;
}


猜你喜欢

转载自blog.csdn.net/nameix/article/details/80280366