水仙花数是指具有n位数的数字,其中每个数字的n次方之和等于该数字本身。例如,153是一个水仙花数,因为1的三次方加5的三次方加3的三次方等于153。

水仙花数を求めるためのforループを使用したサンプルコードは次の通りです:

#include <iostream>
#include <cmath>

int main() {
    int num, n, digit, sum;
    
    for(num = 100; num < 1000; num++) {
        n = 0;
        sum = 0;
        int temp = num;
        
        // 计算num的位数
        while(temp != 0) {
            temp /= 10;
            n++;
        }
        
        temp = num;
        
        // 求每个位上的数的n次幂之和
        while(temp != 0) {
            digit = temp % 10;
            sum += pow(digit, n);
            temp /= 10;
        }
        
        // 判断是否是水仙花数并输出
        if(num == sum) {
            std::cout << num << " ";
        }
    }
    
    return 0;
}

このコードは、全ての3桁のアームストロング数、すなわち153、370、371、407を出力します。必要に応じて、ループの範囲や桁数を変更して、異なる桁数のアームストロング数を求めることができます。

bannerAds