C语言 分别用循环和嵌套函数来输出水仙花数,并说出他们的区别
时间: 2023-03-19 13:21:38 浏览: 169
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。
以下是用C语言编写的两个实现:
使用循环的方法:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int i, j, k;
for (i = 100; i < 1000; i++)
{
j = i / 100; // 分离百位数字
k = i % 100; // 取后两位数字
if (i == pow(j, 3) + pow(k / 10, 3) + pow(k % 10, 3))
{
printf("%d\n", i);
}
}
return 0;
}
```
使用嵌套函数的方法:
```c
#include <stdio.h>
#include <math.h>
int isArmstrong(int n)
{
int sum = 0;
int temp = n;
int digit = 0;
while (temp > 0)
{
digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return (sum == n);
}
int main()
{
int i;
for (i = 100; i < 1000; i++)
{
if (isArmstrong(i))
{
printf("%d\n", i);
}
}
return 0;
}
```
这两个方法的区别在于第一个使用了循环语句来实现,而第二个使用了一个嵌套函数来计算一个数是否是水仙花数。嵌套函数的实现更为简洁,使得主函数的逻辑更清晰。另外,嵌套函数的使用也能提高代码的可读性和可维护性。
阅读全文