水仙花数是指一个三位数,其各个位上数字立方和等于该数本身。例如,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;
}
该代码首先要求用户输入一个三位数,然后使用原始数的副本进行操作。在while循环中,我们通过对原始数进行取余操作,得到每个位上的数字,并将其立方求和,存储在result变量中。然后,我们将原始数除以10,以便在下一次循环中处理下一个数字。最后,我们将计算出的result与原始数进行比较,如果相等,则该数是水仙花数,否则不是。