使用循环和递归计算阶乘:

/*使用循环和递归计算阶乘*/
#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
程序退出
 

最新文章

  1. 设置DataGridView的某个单元格为ComboBox
  2. java 接口中模拟浏览器 请求webservice 接受返回数据
  3. 走进AngularJs(三)自定义指令-----(上)
  4. Linux查看当前目录下文件夹和文件的大小
  5. Scrum 项目1.0 2.0 3.0 4.0 5.0 6.0 7.0
  6. 剖析简易计算器带你入门微信小程序开发
  7. Splay!
  8. HDU-4507 吉哥系列故事——恨7不成妻 数位DP
  9. Basic Operation about Linux
  10. Mybatis的分页查询
  11. Video事件、方法-- DOM
  12. JQuery DataTables Editor---页面内容修改&amp;&amp;数据库信息修改 (2)
  13. Swift入门教程:基本运算符
  14. Jquery点击除了指定div元素其他地方,隐藏该div
  15. [USACO 04OPEN]MooFest
  16. Object Relational Tutorial 对象关系教程
  17. Asp.Net Core&amp;Jenkins持续交付到Windows Server
  18. 10 Django RESTful api 实现匿名访问
  19. 使用 dva 如何配置异步加载路由组件
  20. 51nod 1061 最复杂的数V2

热门文章

  1. 【服务器数据恢复】RAID6数据恢复案例
  2. ref(代替id)
  3. CH32V307/CH32V203 IO翻转速度测试
  4. Autojs页面开发
  5. 向mysql插入数据是出现Incorrect string value错误
  6. CMMI-QA工作流程(角色区分)
  7. COOP/COHP(上)-PROOUT
  8. css设置背景图(背景图太大导致图片显示不全)
  9. Kafka Reblance &amp; max.poll.interval.ms 重复消费问题
  10. 动态修改网页的 icon 和 title