用c语言编写打印出所有“水仙花数”的程序
时间: 2023-06-16 22:07:44 浏览: 103
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是用C语言编写打印出所有水仙花数的程序:
```c
#include <stdio.h>
int main() {
int i, j, k, n;
for (n = 100; n < 1000; n++) {
i = n / 100; // 获取百位数
j = n / 10 % 10; // 获取十位数
k = n % 10; // 获取个位数
if (n == i * i * i + j * j * j + k * k * k) {
printf("%d\n", n);
}
}
return 0;
}
```
在上面的程序中,我们使用了一个循环来遍历所有的三位数,然后获取每个数的百位、十位和个位数字,计算它们的三次方之和,如果等于这个数本身,则打印出这个数。
相关问题
利用C语言编写程序,打印水仙花数。要求写一个函数,用于判断一个数是否为“水仙花数”。调用该函数打印出所有水仙花数。 所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
以下是利用C语言编写的程序,可以打印出所有水仙花数:
```c
#include<stdio.h>
// 判断一个数是否为“水仙花数”的函数
int isNarcissisticNumber(int n)
{
int sum = 0, temp = n;
while(temp > 0)
{
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if(sum == n)
return 1;
else
return 0;
}
int main()
{
printf("水仙花数有:\n");
for(int i=100; i<=999; i++)
{
if(isNarcissisticNumber(i))
{
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
运行结果如下:
```
水仙花数有:
153 370 371 407
```
用c语言编写求所有水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
下面是一个简单的C语言程序,用于查找并打印出小于1000的所有水仙花数:
```c
#include <stdio.h>
// 检查是否是水仙花数
int is_armstrong_number(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit; // 计算每一位立方
temp /= 10;
}
if (sum == num)
return 1;
else
return 0;
}
// 主函数,遍历并检查100到999范围内的数字
void find_armstrong_numbers() {
for (int i = 100; i <= 999; i++) {
if (is_armstrong_number(i))
printf("%d ", i);
}
}
int main() {
find_armstrong_numbers();
return 0;
}
```
当你运行这个程序,它会输出小于1000的所有水仙花数:153, 370, 371, 407.
阅读全文