c语言用输入100-999的水仙花数
时间: 2024-05-13 07:16:07 浏览: 98
水仙花数指一个三位数,其各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为1的立方+5的立方+3的立方等于153。
以下是C语言代码示例:
```c
#include <stdio.h>
int main()
{
int num, i, temp, sum;
printf("请输入100-999之间的水仙花数:\n");
for(num = 100; num <= 999; num++)
{
temp = num;
sum = 0;
while(temp != 0)
{
i = temp % 10;
sum += i * i * i;
temp /= 10;
}
if(num == sum)
{
printf("%d\n", num);
}
}
return 0;
}
```
该程序使用 for 循环遍历 100-999 的三位数,对每个数进行水仙花数判断,如果是水仙花数就输出。在判断水仙花数时,使用 while 循环对每个数的各个位进行计算,最后与原数比较。
相关问题
pta题库c语言实验2的7-1水仙花数答案
水仙花数是一种特殊的三位数,它的各位数字立方之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
对于PTA题库C语言实验中的7-1题目,你需要编写一个程序检查给定的整数是否是水仙花数。以下是简单的C语言解决方案:
```c
#include <stdio.h>
#include <stdbool.h>
bool is narcissistic_number(int num) {
int digits[3], sum = 0;
bool found_digits = false;
// 分离出每一位数字并计算立方和
while (num > 0) {
digits[found_digits] = num % 10;
sum += pow(digits[found_digits], 3);
num /= 10;
found_digits++;
}
// 检查立方和是否等于原数
return found_digits == 3 && sum == num;
}
int main() {
int number;
printf("Enter a three-digit number: ");
scanf("%d", &number);
if (is_narcissistic_number(number)) {
printf("%d is a Narcissistic number.\n", number);
} else {
printf("%d is not a Narcissistic number.\n", number);
}
return 0;
}
```
在这个程序中,`is_narcissistic_number`函数会检查输入的数字是否满足水仙花数条件。如果输入的数字是水仙花数,主函数会打印相应的消息。
用C语言求100-999中的水仙花数。若三位数ABC,ABC=A3+B3+C3,则称ABC为水仙花数。 例如153,13+53+33=1+125+27=153,则153是水仙花数。 输入说明 无 输出说明 输出一行,为水仙花数,不同数之间用空格分隔,最后没有换行。
好的,以下是用 C 语言实现的代码:
```c
#include <stdio.h>
int main() {
int a, b, c, num;
for (num = 100; num <= 999; num++) {
a = num / 100;
b = (num / 10) % 10;
c = num % 10;
if (num == a*a*a + b*b*b + c*c*c) {
printf("%d ", num);
}
}
return 0;
}
```
这段代码使用了 for 循环来遍历 100 到 999 之间的数,对于每个数,分别计算出它的百位、十位和个位,然后判断它是否为水仙花数。如果是水仙花数,则输出该数。
阅读全文