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

/*使用循环和递归计算阶乘*/
#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. springboot gradle 集成流程引擎activiti

    buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } } dep ...

  2. MyBatis_08(MyBatis缓存)

    MyBatis缓存: 缓存只针对 "查询功能有效" MyBatis的一级缓存: 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同 ...

  3. (python)正则表达式

    # -*- coding: utf-8 -*- import re def test_dot(): """ . => 表示匹配任意字符 ""&q ...

  4. IDEA EduTools Plugin Learning Cause

    背景 编程培训需求,能够检测学生的输入内容与预期一致,有课程大纲 IDEA Plugin EduTools 是一个非常出色的培训工具,具备在IDE中学习,能够通过单元测试验证正确错误,能够设置用户输入 ...

  5. Json数组形式的字符串转为Map数组、Map集合的几种遍历方式

    // Json数组形式的字符串转为Map数组 String strArr = "[{"name": "xx", "age": &q ...

  6. Java期末课程设计--购物车的GUI(编辑中)

    实现的功能 基本功能 使用admin登录 对商品表内的商品添加至购物车 结算价格 扩展功能 用户的登录注册(基于数据库) 钱包功能 结算前录入地址信息 丰富GUI(指插入图片) 管理员界面(对商品进行 ...

  7. 从零搭建hadoop集群之mysql安装

    Linux RPM 方式安装 MySQL在 hadoop02机器上 1. 安装新版mysql前,需将系统自带的mariadb-lib卸载 [root@hadoop02 ~]# rpm -qa|grep ...

  8. java面试准备基础篇

    1.Java中常用关键字和用途 synchronized: 加锁 transient 不参与序列化和反序列化 volatile 保证其他线程可见性,不保证原子性,禁止指令重排 2.hashCode() ...

  9. http头部meta 作用

    <meta charset="utf-8"> <!-- 设置文档字符编码 --> <meta http-equiv="x-ua-compat ...

  10. Vue3学习笔记

    为什么需要Composition API ? 主要原因:当一个组件的变得逻辑复杂的时候,痛点:多种逻辑代码被分散到组件的各个部分,比如代码的相关逻辑可能会在 data: {...},computed: ...