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と初期値が等しければその数字は水仙数、そうでなければ水仙数ではない。