递归实现n的阶乘

    什么是阶乘:0!= 1,n!=n * (n - 1) * (n - 2)......3 * 2 * 1;

解题思路: 1> 分析题意,很明显0是递归出口;
                     2> 很好看出,递归调用自己,直到n等于0,返回之前的函数,直到最后一个;
                     3> 一个简单n的阶乘就计算完成,返回并输出。
代码:

#include<stdio.h>
int f(int n)/*递归函数*/
{
int fac;
if (n < )
printf("n<0,data error!");
else
if (n == || n == )
fac = ;
else
fac = f(n - ) * n;
return fac;
}
int main()
{
int n, y;
printf("请输入一个整数:\n");
scanf_s("%d", &n);
y = f(n);
printf("%d!=%d", n, y);
return ;
}

【C语言】利用递归函数求n的阶乘的更多相关文章

  1. 2717: 递归函数求n的阶乘

    2717: 递归函数求n的阶乘 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1329  Solved: 942[Submit][Status][Web ...

  2. C语言-求1-20的阶乘的和(函数的递归)

    // //  main.c //  C语言 // //  Created by wanghy on 15/9/5. //  Copyright (c) 2015年 wanghy. All rights ...

  3. Python练习--普通函数与递归函数求阶乘

    '''Created on 2018年10月28日递归函数示例:阶乘'''def my_fun_example1(n):    '''    非递归函数求阶乘示例    '''    result = ...

  4. Hadoop阅读笔记(二)——利用MapReduce求平均数和去重

    前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...

  5. 汇编语言-求X的阶乘

    1. 题目:求X的阶乘值 2. 要求:输入一个整型数(不超过10),求出其阶乘值后输出,求阶乘的算法用子程序来实现. 3. 提示:可以用递归来实现,也可以用简单的循环来实现. 这里使用循环来实现: 对 ...

  6. 利用BFS求最短路

    利用BFS求图的最短路, POJ3984 #define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<string.h& ...

  7. [笔记]ACM笔记 - 利用FFT求卷积(求多项式乘法)

    卷积 给定向量:, 向量和: 数量积(内积.点积): 卷积:,其中 例如: 卷积的最典型的应用就是多项式乘法(多项式乘法就是求卷积).以下就用多项式乘法来描述.举例卷积与DFT. 关于多项式 对于多项 ...

  8. 【Python 16】分形树绘制4.0(利用递归函数绘制分形树fractal tree)

     1.案例描述 树干为80,分叉角度为20,树枝长度小于5则停止.树枝长小于30,可以当作树叶了,树叶部分为绿色,其余为树干部分设为棕色. 2.案例分析 由于分形树具有对称性,自相似性,所以我们可以用 ...

  9. 递归和非递归分别实现求n的阶乘

    思路:举例求6的阶乘,6*5*4*3*2*1.可以将5开始看成另一个整型变量n,用一个循环每次将n的值减少1,.而递归也是如此,每次调用函数的时候将变量减一就可以. 方法一:非递归 //非递归: #i ...

随机推荐

  1. hdu 1007 Quoit Design(平面最近点对)

    题意:求平面最近点对之间的距离 解:首先可以想到枚举的方法,枚举i,枚举j算点i和点j之间的距离,时间复杂度O(n2). 如果采用分治的思想,如果我们知道左半边点对答案d1,和右半边点的答案d2,如何 ...

  2. sqlserver中判断是数字(会自动将.3识别为0.3)

    SQL Server 检测是不是数字型的数据(两种方法) 检测是不是数字型的数据, 两种方法 1. ISNUMERIC ( expression ) 2. PATINDEX ( '%pattern%' ...

  3. waiting list

    Problem: how to cluster non-stationary multivariate time series. What are stationary time series How ...

  4. elasitic search fresh flush segment merge

    new document首先在in memory buffer 中 (1)fresh 触发条件:默认one second 执行一次 执行过程:将memory buffer中documents 写入至f ...

  5. 解决shell 报错:syntax error: unexpected end of file

    debug  shell:执行 sh -x test.sh vi test.sh :set fileformat=unix :wq解决问题原因是我在windows pycharm 写的格式不符合uni ...

  6. laravle中orm简单的增删改查

    友情提示请在有laravel基础的情况下观看文章 1.数据库信息(user表) CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...

  7. [Python]BeautifulSoup标签的遍历

    1.下行遍历 标签树的下行遍历.content 子节点列表,将tag所有儿子节点存入列表.children 子节点的迭代类型,与.contents类似用于循环遍历儿子节点.descendants 子孙 ...

  8. 《深入理解java虚拟机》读书笔记五——第六章

    第六章 类文件结构 1.无关性的基石 各种不同平台的虚拟机与所有平台都统一使用程序存储格式——字节码是构成平台无关的基石. 实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Ja ...

  9. CCF CSP 201803-2 碰撞的小球

    题目链接:http://118.190.20.162/view.page?gpid=T72 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段 ...

  10. windows上快速新建1g的文件

    在E盘新建1g文件 fsutil file createnew d:\b.txt 1073741824