/*
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 13 + 53 + 33。
370 = 33 + 73 + 03。
371 = 33 + 73 + 13。
407 = 43 + 03 + 73。
*/
// boosttest.cpp : Defines the entry point for the console application.
//
#include <iostream>
using namespace std;
int getPower(int number,int pow)
{
int retval = 1;
for ( int i = 0 ; i < pow; i ++ )
{
retval *= number;
}
return retval;
}
bool isNum( int number )
{
if ( number <= 0 )
{
return false;
}
int digitNum = 0;
int inputNum = number;
while ( number )
{
int lowerNumber = number % 10;
number = (number-lowerNumber)/10;
digitNum ++;
}
int currentValue = 0;
number = inputNum;
while ( number )
{
int lowerNumber = number % 10;
currentValue += getPower(lowerNumber,digitNum);
number = (number - lowerNumber)/10;
}
return currentValue == inputNum;
}
int main()
{
for (int i = 100; i < 1000000 ; i ++ )
{
if ( true == isNum(i) )
{
cout << i <<endl;
}
}
return 0;
}
本文深入探讨了水仙花数的概念及其数学特性,通过定义、实例和代码实现,展示了如何识别和验证水仙花数。详细介绍了水仙花数的计算方法和背后的数学原理,同时提供了C++实现代码,帮助读者理解并实践这一有趣且独特的数论概念。
2432

被折叠的 条评论
为什么被折叠?



