用c语音输入一个整数,判断其是否为水仙花数。水仙花数是指一个3位数,它的各位数字的3次幂之和等于它本身。
时间: 2023-08-29 14:12:45 浏览: 84
以下是用C语言实现判断一个三位数是否为水仙花数的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, sum = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == num)
printf("%d是水仙花数\n", num);
else
printf("%d不是水仙花数\n", num);
return 0;
}
```
运行程序,输入一个三位数,程序会判断该数是否为水仙花数并输出结果。
相关问题
c语音输入一个整数输出整数位数和各位相加之和
以下是C语言输入一个整数输出整数位数和各位相加之和的代码:
```c
#include <stdio.h>
int main() {
int num, digit, sum = 0, count = 0;
printf("请输入一个整数:");
scanf("%d", &num);
while (num > 0) {
digit = num % 10; // 取出最低位数字
sum += digit; // 累加各位数字之和
num /= 10; // 去掉最低位数字
count++; // 统计整数位数
}
printf("整数位数为:%d\n各位数字之和为:%d\n", count, sum);
return 0;
}
```
本关任务:求出所有的水仙花数。 提示:所谓水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。比如153是一个水仙花数,因为153=1^3+5^3+3^3。用c语音
在C语言中,我们可以编写一个简单的程序来找出所有的水仙花数。首先,我们需要遍历所有三位数范围内的整数,然后对每个数字的每一位进行立方并求和,如果这个和等于原数,那么它就是一个水仙花数。以下是简单的步骤和伪代码:
1. 初始化变量lower = 100(最小的三位数),upper = 999(最大的三位数)。
2. 使用for循环遍历从lower到upper的所有整数n。
3. 对n的百位、十位和个位分别取立方(num1 = n / 100,num2 = (n % 100) / 10,num3 = n % 10),然后计算它们的立方和total_sum。
4. 检查total_sum是否等于n,如果是,就输出n,并继续下一个数;如果不是,则继续循环。
```c
#include <stdio.h>
#include <stdbool.h>
int cube(int num) {
return num * num * num;
}
bool is_narcissistic_number(int num) {
int sum = cube(num / 100) + cube((num % 100) / 10) + cube(num % 10);
return sum == num;
}
int main() {
for (int n = lower; n <= upper; n++) {
if (is_narcissistic_number(n)) {
printf("%d ", n); // 输出找到的水仙花数
}
}
return 0;
}
```
阅读全文