C语言——使用循环和递归计算阶乘
2024-10-21 14:18:11
使用循环和递归计算阶乘:
/*使用循环和递归计算阶乘*/
#include<stdio.h>
double fact(int num);//函数声明,阶乘函数,用于循环时调用
double rfact(int num);//函数声明,阶乘函数,用于递归时调用
int main(void)
{
int num;
printf("——————计算阶乘——————\n");
printf("请输入一个整数(输入q退出):");
while (scanf("%d",&num)) //如果输出为整数,则执行while语句
{
if (num<0)
{
printf("输入有误!");
}
else
{
printf("循环语句计算的%d!=%lf\n",num,fact(num));//调用阶乘函数,循环计算
printf("递归计算的%d!=%lf\n",num,rfact(num));//调用阶乘函数,递归计算
}
printf("请输入一个整数(输入q退出):");
}
printf("程序退出");
return 0;
}
double fact(int num)
{
double result=1;//存储计算结果
int i;
if (num==0)
{
result=1;//0的阶乘为1
}
else
{
//循环计算阶乘
for (i=1; i<=num; i++)
{
result*=i;
}
}
return result;
}
double rfact(int num)
{
double result=1;//存储计算结果
if (num==0)
{
result=1;//0的阶乘为1
}
else
{
result=num*rfact(num-1);//递归计算
}
return result;
}
计算结果:
——————计算阶乘——————
请输入一个整数(输入q退出):5
循环语句计算的5!=120.000000
递归计算的5!=120.000000
请输入一个整数(输入q退出):10
循环语句计算的10!=3628800.000000
递归计算的10!=3628800.000000
请输入一个整数(输入q退出):q
程序退出
最新文章
- 设置DataGridView的某个单元格为ComboBox
- java 接口中模拟浏览器 请求webservice 接受返回数据
- 走进AngularJs(三)自定义指令-----(上)
- Linux查看当前目录下文件夹和文件的大小
- Scrum 项目1.0 2.0 3.0 4.0 5.0 6.0 7.0
- 剖析简易计算器带你入门微信小程序开发
- Splay!
- HDU-4507 吉哥系列故事——恨7不成妻 数位DP
- Basic Operation about Linux
- Mybatis的分页查询
- Video事件、方法-- DOM
- JQuery DataTables Editor---页面内容修改&;&;数据库信息修改 (2)
- Swift入门教程:基本运算符
- Jquery点击除了指定div元素其他地方,隐藏该div
- [USACO 04OPEN]MooFest
- Object Relational Tutorial 对象关系教程
- Asp.Net Core&;Jenkins持续交付到Windows Server
- 10 Django RESTful api 实现匿名访问
- 使用 dva 如何配置异步加载路由组件
- 51nod 1061 最复杂的数V2