什么是自幂数?

㈠什么是自幂数?

自幂数是指一个 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

 

 

 

以上就是有关自幂数的相关知识,希望有所帮助。

posted @ 2019-11-14 23:46  石海莹  阅读(5622)  评论(0编辑  收藏  举报