C++のナルシサス数問題はどう解決しますか?
水仙花数とは、各桁の数値をn乗したものの和が元の数値に等しいn桁の数のことを指します。例えば、153は水仙花数であり、1の3乗+5の3乗+3の3乗=153となります。
C++での水仙花数の問題を解決するためには、すべての可能なn桁数をループしてそれぞれの桁の数字のn乗の合計を計算し、最後に元の数と等しいかどうかを判断するプログラムを作成することができます。
水仙花数问题を解決するための簡単なC++プログラムの例を以下に示します。
#include <iostream>
#include <cmath>
int main() {
int num, sum, temp, digit;
std::cout << "水仙花数有:\n";
for (int i = 100; i < 1000; i++) {
num = i;
sum = 0;
while (num > 0) {
digit = num % 10;
sum += pow(digit, 3);
num /= 10;
}
if (sum == i) {
std::cout << i << " ";
}
}
return 0;
}
このプログラムは、3桁のすべてのナルシサス数を出力します。他の桁数のナルシサス数を探すために、必要に応じてループの範囲を調整することもできます。