当前位置:网站首页>求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;
}

边栏推荐
猜你喜欢
随机推荐
qemu虚拟机模拟固件环境搭建
4. Using Local Geospatial Data
QT程序设计多人聊天室(基于QT、sqlite3、TCP/IP)
js中的Date对象 及 将时间戳转换为yy-mm-dd hh:mm:ss格式的方法
认识盒子模型
学编程的第十天
easywsclient的DEMO测试
Go语言基础(十二):并发编程
Xshell显示乱码
webSocket的实现
标准IO及其各函数用法
学习编程的第二天
Fiddler抓包夜神模拟器
weiteUP-ciscn_2019_c_1
writeUP-[第五空间2019 决赛]PWN5(待进一步完善待研究内容)
浮动的特点
ping www.baidu.com虚拟机中ping百度
九章云极DataCanvas APS机器学习平台获得中国信通院“领先级”评级
kubernetes架构原则和对象设计
文字样式的常见属性的如何使用?









