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

时间:2014-02-22 17:40:11

标签: 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;
}

5 个答案:

答案 0 :(得分:1)

你需要的只是一个循环。这种方式应该简单得多。

#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;
}

答案 1 :(得分:0)

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

     num *=i;
}

这应该足够了

答案 2 :(得分:0)

我认为你对循环并不是很清楚,并且要小心更改num 尝试这段代码,希望它会有所帮助

#include <iostream>

using namespace std;

int main() {

int i, j, num;

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

cin >> num;
int output_num = 1;
for (i=1; i<=num; i++){

        output_num *= i;

}
cout << output_num;

return 0;
}

答案 3 :(得分:0)

使用此代码:

#include<iostream>
using namespace std;
int main()
{
int num,fact=1;
cout<<" Enter the no. to find its factorial:";
cin>>num;
for(int a=1;a<=num;a++)
{
fact=fact*a;
}
cout<<"Factorial of a given Number is ="<<fact<<endl;
return 0;
}

输出:

enter image description here

答案 4 :(得分:0)

使用两个循环来计算阶乘是非常复杂的.....你不需要它。 试试这个

#include <iostream>

using namespace std;

int main() {

    int i,num;
    cout << "Compute factorial: " << endl;
    cin >> num;
    for(i=num;i>1;--i)
        num*=(i-1);

        cout << num;

    return 0;
}