ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-01-29 17:01:26  阅读:31  来源: 互联网

标签:int 循环 C语言 num 递归计算 阶乘 输入


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

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

 

 

 

 

标签:int,循环,C语言,num,递归计算,阶乘,输入
来源: https://www.cnblogs.com/delphi/p/15855407.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有