C++ 阶乘程序做奇怪的数学

标签 c++ loops factorial

C++ 的新手。制作这个阶乘程序,不知何故我已经通过代码抓取并构建了一些东西,但它返回的值总是正确值的 10 倍。例如,5 的阶乘计算为 1200 而不是 120,3 的阶乘计算为 60。为什么要多出一个单位?

这是代码:

#include <iostream>

using namespace std;

int main() {

    int i, j, num;

    cout << "Compute factorial: " << endl;

    cin >> num;

    for (i=1; i<num; i++){

        for (j=num; j>1; j--)

            num *=(j-i);

        cout << num;
    }

    return 0;
}

最佳答案

您只需要一个循环。这种方式应该简单很多。

#include <iostream>

using namespace std;

int main() {

    int i, j=1, num;

    cout << "Compute factorial: " << endl;

    cin >> num;

    for (i=num; i>0; i--){
        j *= i;
    }

    cout << j << endl;
}

关于C++ 阶乘程序做奇怪的数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21957899/

相关文章:

c++ - 定义必须采用哪个父函数

c++ - 尝试 Throw Catch C++ 嵌套函数

c++ - 在 C++ 中解析基于 TCP 的 TLV 协议(protocol)的问题

SQL 循环从不同的开始和结束日期生成许多行

algorithm - 找到 n,它的阶乘是阶乘的乘积

c - 如何退出 ANSI C 中的递归

c++ - 创建面向对象的链表时出现编译问题(编译器错误 C2664)

java - "a <= b && b <= a && a != b"怎么可能是真的?

arrays - 在 Powershell 中提取一系列数组

algorithm - 在最佳时间计算一个数的阶乘