什么是自幂数?
㈠什么是自幂数?
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
㈡自幂数包括?
自幂数包括:独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数、十全十美数。
㈢各个数的取值?
n为1时,自幂数称为独身数。显然,0,1,2,3,4,5,6,7,8,9都是自幂数。
n为2时,没有自幂数。
n为3时,自幂数称为水仙花数,有4个:153,370,371,407;
n为4时,自幂数称为四叶玫瑰数,共有3个:1634,8208,9474;
n为5时,自幂数称为五角星数,共有3个:54748,92727,93084;
n为6时,自幂数称为六合数, 只有1个:548834;
n为7时,自幂数称为北斗七星数, 共有4个:1741725,4210818,9800817,9926315;
n为8时,自幂数称为八仙数, 共有3个:24678050,24678051,88593477;
n为9时,自幂数称为九九重阳数,共有4个:146511208,472335975,534494836,912985153;
n为10时,自幂数称为十全十美数,只有1个:4679307774。
总共有88个自幂数,最大的自幂数是115132219018763992565095597973971522401。
㈣JavaScript实现代码
4.1水仙花数
4.2四叶玫瑰数
4.3五角星数
4.4六合数
4.5北斗七星数
4.6八仙数
4.7九九重阳数
4.8十全十美数
㈤代码测试
var m=parseInt(prompt("请输入要求自幂数的位数")); //m位自幂数
function Pow(x,n) //x的n次方
{
num=1;
while(n--)
{
num=num*x;
}
return num;
}
function dfs(deep,curNum, curSum) //DFS搜索自幂数
{
if(deep>m)
{
if(curNum==curSum) //满足条件自幂数输出
{
console.log(curNum);
}
}
else
{
var start=(deep==1);//第一位不为0
for(var i=start;i<=9;i++)
{
dfs(deep+1,curNum*10+i,curSum+Pow(i,m));
}
}
}
dfs(1,0,0);
测试:
输入自幂数的位数为:3
以上就是有关自幂数的相关知识,希望有所帮助。