c语言 输入一个三位的正整数n, 输出100~n范围内所有的水仙花数。 用函数判断一个整数是不是水仙花数,是返回1,不是返回0。
时间: 2024-05-04 07:15:22 浏览: 15
以下是代码实现:
```c
#include <stdio.h>
#include <math.h>
int isNarcissistic(int num) {
int sum = 0, n = num;
while (n > 0) {
sum += pow(n % 10, 3);
n /= 10;
}
return sum == num;
}
int main() {
int n;
printf("请输入一个三位的正整数:");
scanf("%d", &n);
printf("100~%d范围内的水仙花数有:", n);
for (int i = 100; i <= n; i++) {
if (isNarcissistic(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
函数`isNarcissistic`中,先将输入的整数拆分成个位、十位和百位,计算每位的立方和,并与原数比较,判断是否为水仙花数。在主函数中,循环遍历100到输入的整数n,判断每个数是否为水仙花数,是则输出。
相关问题
C语言:三位的水仙花数: 输入一个三位的正整数n, 输出100~n范围内所有的水仙花数。 用函数判断一个整数是不是水仙花数,是返回1,不是返回0。 主函数调用该函数,实现输出100~n之间的所有水仙花数。
```c
#include <stdio.h>
#include <math.h>
int isNarcissistic(int n);
int main()
{
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("100~%d范围内的水仙花数有:", n);
for (int i = 100; i <= n; i++)
{
if (isNarcissistic(i))
{
printf("%d ", i);
}
}
return 0;
}
int isNarcissistic(int n)
{
int sum = 0;
int temp = n;
while (temp)
{
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == n;
}
```
C语言输出水仙花数。输入一个正整数n,输出所有的n位水仙花数
以下是C语言代码,可以输出n位水仙花数:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j, k, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = pow(10, n-1); i < pow(10, n); i++) {
sum = 0;
j = i;
while (j > 0) {
k = j % 10;
sum += pow(k, n);
j /= 10;
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
这个程序会输出所有n位水仙花数,例如输入3,输出的结果为:
```
153
370
371
407
```