C语言编程:输入一个三位数,判断这个数是否是水仙花数,并输出判断结果。 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。 例如: 输入:153 输出: yes 输入:111 输出:no
时间: 2023-03-28 11:03:17 浏览: 95
这是一个编程问题,我可以回答。以下是代码实现:
#include <stdio.h>
#include <math.h>
int main()
{
int num, originalNum, remainder, n = , result = ;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
// 计算位数
while (originalNum != ) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算每个位上的数字的 n 次幂之和
while (originalNum != ) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否是水仙花数
if (result == num)
printf("yes\n");
else
printf("no\n");
return ;
}
相关问题
编程输出所有的水仙花数,要求:用一个c语言函数调用实现水仙花数的判断。
水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如:153是一个水仙花数,因为153=1³+5³+3³。
下面是一个用 C 语言实现的输出所有水仙花数的程序:
```c
#include <stdio.h>
int isNarcissistic(int num) {
int digit, sum = 0, tmp = num;
while (tmp > 0) {
digit = tmp % 10;
sum += digit * digit * digit;
tmp /= 10;
}
return (num == sum);
}
int main() {
int i;
printf("所有水仙花数:\n");
for (i = 100; i < 1000; i++) {
if (isNarcissistic(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
该程序中的 `isNarcissistic` 函数用于判断一个数是否为水仙花数。在 `main` 函数中,我们循环遍历 100 到 999 之间的所有三位数,对每个数调用 `isNarcissistic` 函数进行判断,如果是水仙花数,则输出。
编程,输出所有的水仙花数(水仙花数是一个三位数)C语言
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
for(num=100; num<1000; num++) {
digit1 = num / 100; // 获取百位数
digit2 = (num / 10) % 10; // 获取十位数
digit3 = num % 10; // 获取个位数
if(num == digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3) {
printf("%d\n", num); // 输出水仙花数
}
}
return 0;
}