• C语言——使用循环和递归计算阶乘


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

    /*使用循环和递归计算阶乘*/
    #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
    程序退出
     
  • 相关阅读:
    stm32启动代码分析
    STM32固件库详解
    ARM GCC CodeSourcery EABI下载地址
    Linux/redhat 基本网络配置
    侧边栏导航
    div滚动,页面不滚动
    自定义滚动条样式
    placeholder自定义CSS
    浏览器判断
    初始化页面垂直居中
  • 原文地址:https://www.cnblogs.com/delphi/p/15855407.html
Copyright © 2020-2023  润新知