练习题之水仙花数

水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
思路:
①取各自位置上的数字
三位数:123
百位数:123和100取整
十位数:123和10取整数之后再和10取余
_个位数:123和100取余
②求三次幂之和
示例

// JavaScript
for (var i=100;i<=999;i++){
     
    var a=Math.pow(i%100%10,3);
    var b=Math.pow(Math.floor(i/10)%10,3);
    var c=Math.pow(Math.floor(i/100),3);
    if  (i==a+b+c){
     
        console.log("水仙花数有:",i)
    }
}
#Python
for i in range(100,999):
    a=(i%100%10)**3#个位数
    b=(i//10%10)**3#十位数
    c=(i//100)**3#百位数
    if a+b+c==i:
        print("水仙花数有:",i)
//Java
    public static void main (String[] args){
     
        for (int i=100;i<=999;i++){
     
            int a=i%100%10;//个位数
            int b=i/10%10;//十位数
            int c=i/100;//百位数
            if (a*a*a+b*b*b+c*c*c==i){
     
                System.out.println("水仙花数是"+i);
            }
        }
    }
#Shell
#!/bin/bash
for i in `seq 100 999`
do
        a=$(($(($i%10))**3))
        b=$(($(($i/10%10))**3))
        c=$(($(($i/10/10))**3))
        sum=$(($a+$b+$c))
        if  [ $sum == $i ]
        then
                echo $i
        fi
done

你可能感兴趣的:(练习题之水仙花数)