c语言用输入100-999的水仙花数
时间: 2024-05-13 09:16:07 浏览: 94
水仙花数指一个三位数,其各位数字的立方和等于该数本身。例如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语言输入一个范围判断水仙花数
在C语言中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要编写一个程序来判断用户输入的范围内是否存在水仙花数,你可以遵循以下步骤:
1. 定义一个函数`isArmstrongNumber(int num)`,检查输入的整数是否为水仙花数。
2. 接收用户输入的最小值和最大值。
3. 使用循环遍历这个范围内的每一个整数。
4. 对于每个数,先转换成字符串,然后获取每一位的数字,计算它们的立方和并与原数比较,如果是,则返回true;否则继续下一个数。
5. 如果整个范围内都没有找到水仙花数,返回false。
这是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <stdbool.h>
bool isArmstrongNumber(int num) {
int original, sum = 0, temp;
original = num;
while (num != 0) {
temp = num % 10;
sum += temp * temp * temp;
num /= 10;
}
return sum == original;
}
int main() {
int start, end, i, found = 0;
printf("Enter the range (start and end): ");
scanf("%d %d", &start, &end);
for (i = start; i <= end; i++) {
if (isArmstrongNumber(i)) {
found = 1;
printf("%d is a Narcissistic number.\n", i);
}
}
if (!found) {
printf("No Narcissistic numbers in the given range.\n");
}
return 0;
}
```
阅读全文