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

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

C语言——使用循环和递归计算阶乘的更多相关文章

  1. 【下载分】C语言for循环语句PK自我活动

    想了解自己C语言for语句的掌握程度吗?敢和自己PK较量一番吗?參加"C语言for循环语句PK自我活动",仅仅要成绩70分以上.就可赢得CSDN下载分. 12道题目题库动态读取,每 ...

  2. [R] R语言for循环机制

    在做数据分段截取的时候,发现for循环的表现和其他语言不太一样. 上代码: :) { i = i + print(i) } 结果: [] [] [] [] 即作为循环计次的i, 并不会因为在循环体中的 ...

  3. C 语言实例 - 循环输出26个字母

    C 语言实例 - 循环输出26个字母 循环输出 个字母. 实例 #include <stdio.h> int main() { char c; for(c = 'A'; c <= ' ...

  4. Django 模板语言 for循环

    Django 模板语言 for 循环 ******  for 循环字典 ********** USER_DICT = { 'k1':'root1', 'k2':'root2', 'k3':'root3 ...

  5. 练习_使用递归计算1-n之间的和-练习_使用递归计算阶乘

    练习_使用递归计算1-n之间的和 定义一个方法,使用递归计算1-n之间的和 1+2+3+. . .+n n+(n-1)+(n-2)+...+1 已知: 最大值:n 最小值:1 使用递归必须明确: 1. ...

  6. C语言 for循环之阶乘的算法

    int n; scanf("%d", &n); int fact = 1; int i = 1; while ( i <= n ) { fact *=i; i++; ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_3_练习_使用递归计算阶乘

    结束条件是乘到 当前数字等于1

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

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

  9. 【C语言】-循环结构-while语句

    while语句: while循环可实现"当型"循环,即当条件成立时,执行循环体.适合无法确定循环执行次数的情况. while (表达式) { 循环语句 } 注意: 表达式为循环控制 ...

  10. matlab for循环应用(阶乘及the day of year)

    一.N的阶乘 %脚本文件:test.m %N的阶乘 使用举例 % 定义变量 % ii ---循环变量,也就是循环次数 % N ---N的阶乘 % N_factorial --计算N的阶乘 clc;cl ...

随机推荐

  1. 【笔记】archlinux缺少部分常用工具

    安装archlinux之后发现缺少很多常用工具 比如ifconfig ftp等 ifconfig需要安装net-tools nslookup需要dnsutils ftp需要inetutils 另外安装 ...

  2. C# List提取类中某列保存成新list

    例如,将oldList中的ID列提取出来存放到newList中: List<ushort> newList = new List<ushort>(oldList.Select( ...

  3. EXCEL函数总结

    ------------------截取"号"之前的字符 =MID(A45,1,FIND("号",A45,1)-1)

  4. https原理(二)服务端公钥有没有被CA私钥加密

    https://www.dianjilingqu.com/387084.html 在https原理中,一大争议就是服务端是否用CA私钥加密服务器公钥 是-自签名证书浏览器没有CA公钥,无法解密公钥,而 ...

  5. ideavimrc 示例

    我自己的idea vim配置,用熟悉了以后还真的挺方便的 比较常用的有 ManageRecentProjects,快速切换多个project,经常会遇到同时打开多个project,来回切换方便多了 H ...

  6. JAI 多图片合成TIF格式

    因为项目需要,所以要做这么个工具类,发现了一些问题,接下来一一说明. 需要引入jai-codec-1.1.3.jar跟jai_code-1.1.3.jar. 1.判断图片格式: JPEG (jpg), ...

  7. Perl报错you may need to install the Win32::Console module(转)

    ActivePerl-5.26.3.XXXX.msi安装后,命令行执行cpan,会出现如下提示而无法继续. Can't locate Win32/Console.pm in @INC (you may ...

  8. Linux安装两个anaconda

    安装过程 1.安装第一个Anaconda Anaconda的官方安装网址在 https://www.continuum.io/downloads/ 安装命令: bash Anaconda3-4.3.1 ...

  9. [BOM]打包代码前,快速去除前端日志

    一般开发时使用console.log() 方法.于是可以在js文件的最开头加上: console.log = function(){}

  10. css内容超出元素高度可滚动并且隐藏滚动条

    .div::-webkit-scrollbar { display: none; / Chrome Safari / } .div{ scrollbar-width: none; / firefox ...