列表

详情


CPP35. 函数实现计算一个数的阶乘

描述

编写一个函数 long long factorial(int n),用于计算 n 的阶乘。(要求使用递归实现)

输入描述

键盘输入任意一个整数 n ,范围为 1 - 20

输出描述

输出 n 的阶乘

示例1

输入:

5

输出:

120

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 272KB, 提交时间: 2022-05-17

#include <stdio.h>
long long int fun(long long int n){
    if(n==1) return 1;
    else return fun(n-1)*n;
}
int main(){
    long long int n;
    scanf("%lld",&n);
    printf("%lld",fun(n));
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 276KB, 提交时间: 2022-05-16

#include<stdio.h>
long long factorial(int n)
{
    if(n==1)
        return 1;
    else
        return n *  factorial(n-1);
}
int main()
{
    long long n=0;
    scanf("%d",&n);
   int k = factorial(n);
    printf("%lld\n",k);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 284KB, 提交时间: 2022-05-15

#include <stdio.h>

long long factorial(int n);
int main()
{
    int n = 0;
    scanf("%d", &n);
    long long m = factorial(n);
    printf("%lld\n", m);
    
    return 0;
}

long long factorial(int n)
{
    if (n == 1)
    {
        return 1;
    }
    else
    {
        return factorial(n-1) * n;
    }
}

C 解法, 执行用时: 2ms, 内存消耗: 284KB, 提交时间: 2022-04-04

#include<stdio.h>

long long Multiply(int n){
    if(n==1){
    //    printf("\n");
        return 1;
    }
   // printf(" %d",n);
    return (n*Multiply(n-1));
}

int main(){
    long long n=19;
    scanf("%lld",&n);
    printf("%lld",Multiply(n));
}

C 解法, 执行用时: 2ms, 内存消耗: 288KB, 提交时间: 2022-08-06

#include<stdio.h>
long long x=1;
int step(long long n)
{
    x*=n;
    if(n==1)
    {
        return 0;
    }
    else return step(n-1);
}
int main()
{
    long long n;
    scanf("%lld",&n);
    step(n);
    printf("%lld",x);
    return 0;
}

上一题