while文で水仙花の数を求めるC言語のコード

3桁の整数で、各桁の3乗の和がその数自身に等しい数のこと。例えば、153は1^3 + 5^3 + 3^3 = 153なので、水仙花数である。

以下に、while文を使用して水仙花数を算出するサンプルコードを示します。

#include <stdio.h>

int main() {
    int num, originalNum, remainder, result = 0;

    printf("请输入一个三位数: ");
    scanf("%d", &num);

    originalNum = num;

    while (originalNum != 0) {
        remainder = originalNum % 10;
        result += remainder * remainder * remainder;
        originalNum /= 10;
    }

    if (result == num)
        printf("%d 是水仙花数。\n", num);
    else
        printf("%d 不是水仙花数。\n", num);

    return 0;
}

まずユーザーに3桁の数を入力してもらい、その数字を初期値として使う。whileループ内で、初期値を10で割ったあまりで1桁ずつの数字を取り出し、3乗して加算した値をresultに格納する。その後、初期値を10で割ることで、次のループで次の数字を扱う。最後に、算出したresultと初期値が等しければその数字は水仙数、そうでなければ水仙数ではない。

bannerAds