dowhile 求水仙花数C语言
时间: 2024-10-23 15:05:07 浏览: 34
`do-while`循环在C语言中通常用于需要先检查条件再执行循环体的情况。对于求水仙花数(也叫 narcissistic number 或者 pluperfect digital invariant),它是指一个三位数(如153),其各位数字立方和等于该数本身。例如,1^3 + 5^3 + 3^3 = 153。
下面是使用 `do-while` 循环结构求水仙花数的一个简单示例:
```c
#include <stdio.h>
int is_narcissistic(int num) {
int sum = 0;
int temp = num; // 保存原始数字
do {
int digit = temp % 10; // 取出当前位数
sum += digit * digit * digit; // 累加立方
temp /= 10; // 移除最低位
} while (temp > 0);
if (num == sum)
return 1; // 如果相等,则是水仙花数
else
return 0; // 否则不是
}
int main() {
int num;
printf("Enter a three-digit number: ");
scanf("%d", &num);
do {
if (is_narcissistic(num)) {
printf("%d is a Narcissistic number.\n", num);
break; // 找到就退出循环
}
num++; // 如果不是,尝试下一个数字
} while (num <= 999); // 我们只考虑三位数
return 0;
}
```
在这个程序中,我们首先读入一个三位数,然后在 `do-while` 循环中检查每个输入的数是否为水仙花数。如果找到,就立即打印并退出循环;如果不满足条件,就递增数字继续检查直到999为止。
阅读全文