使用不同语言实现水仙花数(python | c++ | java | javascript | php)

文章目录

水仙花数(Narcissistic number),也被称为自恋数、阿姆斯壮数(Armstrong number),是指一个 n n n位正整数( n ≥ 3 n\geq 3 n3),它的每个位上的数字的 n n n次幂之和等于它本身。

举个例子:
153是一个水仙花数,因为 1 3 + 5 3 + 3 3 = 1 + 125 + 27 = 153 1^3+5^3+3^3=1+125+27=153 13+53+33=1+125+27=153
370也是一个水仙花数,因为 3 3 + 7 3 + 0 3 = 27 + 343 + 0 = 370 3^3+7^3+0^3=27+343+0=370 33+73+03=27+343+0=370
407也是一个水仙花数,因为 4 3 + 0 3 + 7 3 = 64 + 0 + 343 = 407 4^3+0^3+7^3=64+0+343=407 43+03+73=64+0+343=407

下面是不同语言实现水仙花数的代码,供大家参考

Python

for i in range(100, 1000):
    if i == pow(i // 100, 3) + pow(i // 10 % 10, 3) + pow(i % 10, 3):
        print(i)

C++

#include 
using namespace std;

int main() {
    for (int i = 100; i < 1000; i++) {
        int a = i / 100;
        int b = i / 10 % 10;
        int c = i % 10;
        if (i == a * a * a + b * b * b + c * c * c) {
            cout << i << " ";
        }
    }
    return 0;
}

Java

public class NarcissisticNumber {
    
    
    public static void main(String[] args) {
    
    
        for (int i = 100; i < 1000; i++) {
    
    
            int a = i / 100;
            int b = i / 10 % 10;
            int c = i % 10;
            if (i == Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) {
    
    
                System.out.print(i + " ");
            }
        }
    }
}

JavaScript

for (let i = 100; i < 1000; i++) {
    
    
    let a = Math.floor(i / 100);
    let b = Math.floor(i / 10 % 10);
    let c = i % 10;
    if (i === Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) {
    
    
        console.log(i);
    }
}

PHP

for ($i = 100; $i < 1000; $i++) {
    
    
    $a = floor($i / 100);
    $b = floor($i / 10 % 10);
    $c = $i % 10;
    if ($i === pow($a, 3) + pow($b, 3) + pow($c, 3)) {
    
    
        echo $i . " ";
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_46277553/article/details/129895548