簡體   English   中英

C ++階乘程序做奇怪的數學

[英]C++ factorial program doing strange math

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;
}
for (i=1; i<num; i++){

     num *=i;
}

這樣就足夠了

我認為您不太了解for循環,請注意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;
}

使用此代碼:

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

輸出:

在此處輸入圖片說明

使用兩個循環來計算階乘非常復雜.....而您並不需要它。 嘗試這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM