#include <stdioh>
#include <stdlibh>
int Foctorial(int num)
{
int result = 1;
int i;
for(i = 1; i <= num; i++)
{
result = i;
}
return result;
}
int main(void)
{
int num = 8;
int i;
for(i = 1; i <= num; i++)
{
printf("%d的阶乘为:%d\n",i,Foctorial(i));
}
return 0;
}
思路:递归求阶乘函数,如果输入的参数等于1则返回1,否则返回n乘以该函数下次递归。
参考代码:
#include<stdioh>
int fun(int n)
{
if(n==1||n==0) return 1;//如果参数是0或者1返回1
return nfun(n-1);//否则返回n和下次递归的积
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
/
5
120
/
递归算法的原理
递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写
递归能使程序变得简洁和清晰。
#include "stdioh"
#define N 5/定义符号常量N,代表数字5/
long function(int i)
{ /定义局部静态变量f并赋初值1/
static f = 1;
/求形参i的阶乘值并存放在f中/
f = i;
return f;
}
void main( )
{
long product;
int i;
for(i=1; i<=N; i++)
{
/调用函数function( )求阶乘值,并赋值给product /
product = function(i);
/输出/
printf("%ld\n", product);
}
}
以下是使用 for 循环语句编写 n 的阶乘的 C 语言代码实现:
```c
#include <stdioh>
int main() {
int n, factorial = 1;
printf("请输入一个整数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
factorial = i;
}
printf("%d 的阶乘为:%d
", n, factorial);
return 0;
}
```
代码解释:
1 在 `main` 函数中定义变量 `n` 和 `factorial`,分别表示用户输入的数和阶乘结果。
2 通过 `printf` 和 `scanf` 函数获取用户输入的整数。
3 循环计算 1 至 `n` 之间的数的乘积,即为 `factorial` 的值。
4 所有数的乘积计算完之后,输出 `factorial` 即可。
运行结果:
```
请输入一个整数:5
5 的阶乘为:120
```
可以看到,这段 C 语言代码输出了 5 的阶乘,结果为 120。
以上就是关于编写一个函数实现n的阶乘,并由主函数调用,输出1到8的阶乘全部的内容,包括:编写一个函数实现n的阶乘,并由主函数调用,输出1到8的阶乘、求阶乘n!的递归算法、编写求N阶乘的函数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)