#include<stdio.h>
#include<stdlib.h>
//递归
int JC(int n)
{if (n==0){return 1;}return n*JC(n - 1);
}
//非递归
int jc(int n)
{int s=1;int i;if (n==0){return 1;}else{for(i=1;i<=n;i++){s=i*s;}}return s;
}
int main()
{int a;int n;printf("\n 1.非递归 \n 2.递归\n 0.退出\n");a=1;while(a){scanf("%d",&a);switch(a){case 1:printf("enter a number:\n");scanf("%d",&n);printf("n的阶乘为:%d",jc(n));break;case 2:printf("enter a number:\n");scanf("%d",&n);printf("n的阶乘为:%d",JC(n));break;case 0:return 0;default:printf("序号输入错误!");           }}return 0;
}

出现阶乘为0或者为负值的情况可能是发生了溢出,可将int类型改为long型或者long long型

long long型运行结果:

n的阶乘(递归与非递归)相关推荐

  1. C和指针之函数之实现阶乘和斐波那契数(递归和非递归)

    1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...

  2. 【恋上数据结构】递归(函数调用过程、斐波那契数列、上楼梯、汉诺塔、递归转非递归、尾调用)

    递归(Recursion) 什么是递归? 函数的调用过程(栈空间) 函数的递归调用过程 递归实例分析(1 + 2 + 3 + ... + 100 的和) 递归的基本思想.使用套路 斐波那契数列 fib ...

  3. c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...

    点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...

  4. C++第七次作业(函数_递归与非递归_多文件)

    文章目录: 一:C++递归与非递归实现整数的阶乘 代码实现 运行结果 二:C++递归与非递归实现Fibonacci数列的计算:a0=1; a1=1; a2=a0+a1; a3=a1+a2; ..... ...

  5. python创建树结构、求深度_数据结构-树以及深度、广度优先遍历(递归和非递归,python实现)...

    前面我们介绍了队列.堆栈.链表,你亲自动手实践了吗?今天我们来到了树的部分,树在数据结构中是非常重要的一部分,树的应用有很多很多,树的种类也有很多很多,今天我们就先来创建一个普通的树.其他各种各样的树 ...

  6. 二叉树的几种递归和非递归式遍历:

    二叉树的几种递归和非递归式遍历: 1 #include <fstream> 2 #include <iostream> 3 4 using namespace std; 5 6 ...

  7. 全排列(含递归和非递归的解法)

    全排列在近几年各大网络公司的笔试中出现的比较频繁 首先来看看题目是如何要求的(百度迅雷校招笔试题). 用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列, ...

  8. C#实现(递归和非递归)快速排序和简单排序

    C#实现(递归和非递归)快速排序和简单排序 本人因为最近工作用到了一些排序算法,就把几个简单的排序算法,想冒泡排序,选择排序,插入排序,奇偶排序和快速排序等整理了出来,代码用C#代码实现,并且通过了测 ...

  9. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)

    分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...

  10. 汉诺塔的改编题(用栈求解,分别递归和非递归)

    限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须经过中间,求当塔有N层的时候,打印最优移动过程和最优移动总步数 例如:当塔为两层时,最上层的塔记为1,最下层的塔记为2,则 ...

最新文章

  1. 线程或进程绑定到特定的cpu
  2. 读《编程珠玑》 (三)
  3. Matlab程序里Uref什么意思,SVPWM控制算法MATLAB仿真
  4. 中南民族大学计算机类有什么具体专业,中南民族大学计算机科学学院计算机科学与技术专业简介...
  5. spring-mvc教程_使用MVC模式制作游戏-教程和简介
  6. maven添加tomcat插件
  7. 腾讯 2016 春季实习校招一面回忆(C++ 后台)
  8. java维护_java配置和维护
  9. 文本主题模型之LDA(二) LDA求解之Gibbs采样算法
  10. 【算法】排序_选择排序及其优化
  11. javascript教程
  12. windows 图标文件在哪里?
  13. (综述)微信聊天记录导出制作年度报告方法和相关软件
  14. 照片识别年龄 php,用OpenCV和深度学习进行年龄识别
  15. 【论文解读--MPC控制】Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control
  16. Autodesk 2013 免费下载 及所有产品product Key(产品密匙)
  17. 高德地图 公交路线查询
  18. git 拉取远程仓库分支代码方法
  19. 晨星评选的2020年获奖基金怎么样?
  20. GJB6600-装备交互式电子技术手册

热门文章

  1. u8服务器ip地址在哪修改,u8服务器ip地址在哪修改
  2. tiup cluster restart
  3. 查看检测排名各网站的网站
  4. Ubuntu 22.04 LTS 是史诗级的版本?
  5. linux mysql dengl_交作业了!哈哈-·
  6. 人称小Home Assistant版的智能生态系统,智汀究竟可控制多少智能设备?
  7. 阿里实习总结(近期)
  8. 通俗易懂的讲解信号与系统
  9. Meta-Learning之How to train your MAML
  10. [ahk]右键菜单打开文件所在文件夹(快捷方式也适用)