c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言实现阶乘的方法

更新时间:2023-07-11

阶乘的c语言实现方法

1. for循环实现阶乘

使用for循环语句,从1开始循环,依次相乘。


#include <stdio.h>

int main() {
    int n;
    int factorial=1;

    printf("请输入一个正整数:");
    scanf("%d", &n);

    for (int i=1; i <=n; i++) {
        factorial *=i;  //计算阶乘
    }

    printf("%d的阶乘为%d。\n", n, factorial);

    return 0;
}
	

2. 递归实现阶乘

将计算阶乘拆分成多个子问题,每次递归调用函数,直到n等于1时停止递归。


#include <stdio.h>

int factorial(int n);

int main() {
    int n;

    printf("请输入一个正整数:");
    scanf("%d", &n);

    printf("%d的阶乘为%d。\n", n, factorial(n));

    return 0;
}

int factorial(int n) {
    if (n==1) {
        return 1;
    } else {
        return n * factorial(n - 1);  //递归计算阶乘
    }
}
	

3. while循环实现阶乘

使用while循环语句,从1开始循环,依次相乘。


#include <stdio.h>

int main() {
    int n;
    int factorial=1;
    int i=1;

    printf("请输入一个正整数:");
    scanf("%d", &n);

    while (i <=n) {
        factorial *=i;  //计算阶乘
        i++;
    }

    printf("%d的阶乘为%d。\n", n, factorial);

    return 0;
}
	

4. do-while循环实现阶乘

使用do-while循环语句,从1开始循环,依次相乘。


#include <stdio.h>

int main() {
    int n;
    int factorial=1;
    int i=1;

    printf("请输入一个正整数:");
    scanf("%d", &n);

    do {
        factorial *=i;  //计算阶乘
        i++;
    } while (i <=n);

    printf("%d的阶乘为%d。\n", n, factorial);

    return 0;
}
	

以上四种方法均可实现阶乘的计算,其中递归方法代码量较少但更易理解,而循环方法代码量较多但运行速度更快。