0
点赞
收藏
分享

微信扫一扫

算法、函数变量、递归三种方法求n的阶乘(不考虑溢出)

方法一:简单运算实现n的阶乘(不考虑溢出)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
int i = 0;
int n = 0;
printf("请输入一个数:");
scanf("%d", &n);
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
printf("ret= %d\n", ret);
return 0;
}

 方法二:函数的方法实现n的阶乘(不考虑溢出)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int factorial1(int n)
{
int i = 0;
int ret = 1;
for (i = 1; i <= n; i++)
{
ret *= i;
}
return ret;
}

int main()
{
int i = 0;
int n = 0;
int ret = 1;
printf("请输入一个数:");//求n的阶乘(不考虑溢出)
scanf("%d", &n);
ret = factorial1(n);//循环的方式
printf("ret= %d\n", ret);
return 0;
}

方法三:递归的方法求n的阶乘(不考虑溢出)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//根据n的阶乘的计算方法:
int factorial2(int n)
{
if (n <= 1)
return 1;
else
return n * factorial2(n - 1);
}

int main()
{
int i = 0;
int n = 0;
int ret = 1;
printf("请输入一个数:");//求n的阶乘(不考虑溢出)
scanf("%d", &n);
ret = factorial2(n);//递归的方式
printf("ret= %d\n", ret);
return 0;
}


举报

相关推荐

0 条评论