当前位置:网站首页>求n的阶乘的两种方法
求n的阶乘的两种方法
2022-08-09 15:05:00 【我好闲*】
目录

1.方法一
采用非递归的方法
n!=1*2*3*...*n; 采用for就能解决这个问题
//非递归
#include <stdio.h>
int main()
{
int i = 0;
int n = 0;
int sum = 1;//sum初始化为1,不能是0
scanf("%d", &n);
for (i = 1;i <= n;i++)
{
sum = sum * i;
}
printf("%d!=%d", n, sum);
return 0;
}
2.方法二
采用递归的方法
文字解释:
//递归
//n!=1*2*3*...*n
//get(1*2*3*...(n-1)) * n
//get(1*2*3*...(n-2)) *(n-1)* n
//...
//get(1*2) 3* ... *(n-2) *(n-1)* n
//1*2...*(n-1)*n
图片解释:
例如: 求5的阶乘
完整的代码图:

解析图:

#include <stdio.h>
int get(int n)
{
if(n>1)
{
return n * get(n - 1);
}
else if(n == 1)
{
return 1;
}
}
int main()
{
//int n = 0, sum = 0;
printf("请输入一个数:");
scanf("%d", &n);
sum = get(n);
printf("%d!=%d", n, sum);
return 0;
}

边栏推荐
猜你喜欢
随机推荐
安装MySQL时出现starting the server失败
Lens 创建 Service Accounts 及分配权限
qemu虚拟机模拟固件环境搭建
NAT种类及配置
第三章:GEE数据的使用(3.4-3.11)
RAID磁盘阵列详解
properties文件的读取和写入
MYSQL数据库一周基础入门(第二天)
NAT-UDP穿透详解与实践
JS字符串对象基础操作方法
7.25-7.29学习总结(状态机及PWM原理)
保姆级教程:写出自己的移动应用和小程序(篇四)
九章云极DataCanvas APS机器学习平台获得中国信通院“领先级”评级
2022高教社杯 国赛数学建模 B题思路
Typescript学习(一)
详解VLAN与划分广播域
单臂路由与三层交换机实现跨VLAN通讯
(七)小思同学和性能
MySQL必知必会(一)
2022国赛数学建模思路汇总A题B题C题D题 高教社杯









