水仙花数是指一个3位数,它的每一位上的数字的3次幂之和等于它本身(例如:13 + 53+ 33 = 153)。编程实现:输入一个整数n,如果是一个三位数,判断是不是水仙花数。用c语言
时间: 2024-03-23 10:38:00 浏览: 189
好的,可以使用以下代码实现:
#include <stdio.h>
#include <math.h>
int main() {
int n, sum = 0;
printf("请输入一个三位数:");
scanf("%d", &n);
if (n < 100 || n > 999) {
printf("输入的不是一个三位数!\n");
return 0;
}
int temp = n;
while (temp > 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == n) {
printf("%d 是水仙花数!\n", n);
} else {
printf("%d 不是水仙花数!\n", n);
}
return 0;
}
程序首先读取一个三位数,如果不是三位数则输出错误信息并退出程序。然后程序计算该数字的每一位上的数字的3次幂之和,最后判断该和是否等于输入的三位数,如果相等则输出该数字是水仙花数,否则输出该数字不是水仙花数。
相关问题
c语言回答n位水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如: 三位水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身。(例如:13 + 53 + 33= 153)。 四位水仙花数是指一个四位
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j, k, sum;
printf("请输入位数n:");
scanf("%d", &n);
printf("%d位水仙花数有:\n", n);
for (i = pow(10, n - 1); i < pow(10, n); i++) {
sum = 0;
for (j = i; j > 0; j /= 10) {
k = j % 10;
sum += pow(k, n);
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
编程求出所有水仙花数:水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身
水仙花数是一个特殊的整数现象,它由三位数组成,且其各位数字立方和等于该数自身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。为了编写程序找出所有的水仙花数,你可以遍历从100到999之间的每一个数,然后对每个数的百位、十位和个位分别取立方并相加,如果结果等于原数,则该数就是水仙花数。
以下是使用Python编写的一个简单示例:
def find_water_lilies(n):
for num in range(100, 1000): # 遍历三位数范围
first_digit = num // 100 # 百位
second_digit = (num % 100) // 10 # 十位
third_digit = num % 10 # 个位
if first_digit ** 3 + second_digit ** 3 + third_digit ** 3 == num: # 检查是否满足条件
print(num)
# 执行函数查找水仙花数
find_water_lilies()
运行这个程序,你会得到所有的水仙花数。
相关推荐
















