n的阶乘(递归与非递归)
#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的阶乘(递归与非递归)相关推荐
- C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...
- 【恋上数据结构】递归(函数调用过程、斐波那契数列、上楼梯、汉诺塔、递归转非递归、尾调用)
递归(Recursion) 什么是递归? 函数的调用过程(栈空间) 函数的递归调用过程 递归实例分析(1 + 2 + 3 + ... + 100 的和) 递归的基本思想.使用套路 斐波那契数列 fib ...
- c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...
点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...
- C++第七次作业(函数_递归与非递归_多文件)
文章目录: 一:C++递归与非递归实现整数的阶乘 代码实现 运行结果 二:C++递归与非递归实现Fibonacci数列的计算:a0=1; a1=1; a2=a0+a1; a3=a1+a2; ..... ...
- python创建树结构、求深度_数据结构-树以及深度、广度优先遍历(递归和非递归,python实现)...
前面我们介绍了队列.堆栈.链表,你亲自动手实践了吗?今天我们来到了树的部分,树在数据结构中是非常重要的一部分,树的应用有很多很多,树的种类也有很多很多,今天我们就先来创建一个普通的树.其他各种各样的树 ...
- 二叉树的几种递归和非递归式遍历:
二叉树的几种递归和非递归式遍历: 1 #include <fstream> 2 #include <iostream> 3 4 using namespace std; 5 6 ...
- 全排列(含递归和非递归的解法)
全排列在近几年各大网络公司的笔试中出现的比较频繁 首先来看看题目是如何要求的(百度迅雷校招笔试题). 用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列, ...
- C#实现(递归和非递归)快速排序和简单排序
C#实现(递归和非递归)快速排序和简单排序 本人因为最近工作用到了一些排序算法,就把几个简单的排序算法,想冒泡排序,选择排序,插入排序,奇偶排序和快速排序等整理了出来,代码用C#代码实现,并且通过了测 ...
- 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)
分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...
- 汉诺塔的改编题(用栈求解,分别递归和非递归)
限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须经过中间,求当塔有N层的时候,打印最优移动过程和最优移动总步数 例如:当塔为两层时,最上层的塔记为1,最下层的塔记为2,则 ...
最新文章
- 线程或进程绑定到特定的cpu
- 读《编程珠玑》 (三)
- Matlab程序里Uref什么意思,SVPWM控制算法MATLAB仿真
- 中南民族大学计算机类有什么具体专业,中南民族大学计算机科学学院计算机科学与技术专业简介...
- spring-mvc教程_使用MVC模式制作游戏-教程和简介
- maven添加tomcat插件
- 腾讯 2016 春季实习校招一面回忆(C++ 后台)
- java维护_java配置和维护
- 文本主题模型之LDA(二) LDA求解之Gibbs采样算法
- 【算法】排序_选择排序及其优化
- javascript教程
- windows 图标文件在哪里?
- (综述)微信聊天记录导出制作年度报告方法和相关软件
- 照片识别年龄 php,用OpenCV和深度学习进行年龄识别
- 【论文解读--MPC控制】Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control
- Autodesk 2013 免费下载 及所有产品product Key(产品密匙)
- 高德地图 公交路线查询
- git 拉取远程仓库分支代码方法
- 晨星评选的2020年获奖基金怎么样?
- GJB6600-装备交互式电子技术手册