c++ primer plus 第七章-编程题7.13.5《求任意一个数的阶乘》

递归阶乘计算与迭代比较
本文通过实现递归阶乘函数与迭代阶乘函数的对比,深入探讨了递归算法的特性及其与迭代算法的异同。通过具体实例展示了递归在处理阶乘问题时的简洁性和优雅性,并讨论了递归带来的潜在问题如栈溢出风险。同时,对比了递归和迭代两种方法在资源消耗和执行效率上的差异,旨在帮助开发者理解不同场景下选择合适算法的重要性。
#include <iostream>

using namespace std;

long mul(long);

int main() {
    long mu, x;
    for (;;) {
        cout << "Enter a number: ";
        cin >> x;
        mu = mul(x);
        cout << x << "!= " << mu << endl;
    }
}

long mul(long x) {
    if (x > 1)
        x *=mul(x - 1);

    return x;
}
/**********************
 Enter a number: 1
 1!= 1
 Enter a number: 2
 2!= 2
 Enter a number: 3
 3!= 6
 Enter a number: 4
 4!= 24
 Enter a number: 5
 5!= 120
 Enter a number: 6
 6!= 720
 Enter a number: 7
 7!= 5040
 Enter a number: 8
 8!= 40320
 Enter a number: 9
 9!= 362880
 Enter a number: 10
 10!= 3628800
 **********************/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值