簡體   English   中英

如何創建一個程序,在 C++ 中給出一個數字的階乘

[英]How to create a program which gives a factorial of a number in C++

我是 C++ 語言的初學者,我想創建一個程序,該程序給出在程序中輸入的數字的階乘。 誰能幫我找出代碼中的問題?

#include <iostream>

using namespace std;

int factorial(int x){
    for(int i = 1; i < x; i++){
        x = x * i;
    }

    return x;
}

int main(){
    int num;
    cin >> num;
    num = factorial(num);
    cout << num;
}

這是非常錯誤的:

int factorial(int x){
    for(int i = 1; i < x; i++){
        x = x * i;
    }

    return x;
}

如果x是您的計數器,那么您不應該將它也用於輸出!

將其更改為:

int factorial(int n){
    int x = 1;
    for(int i = 1; i <= n; i++){
        x = x * i;
    }

    return x;
}

請注意, int溢出大約 20 億(取決於平台),因此您的計算將無法正確繼續超過n == 12左右......

您的代碼只需簡單的更改。 循環將執行 n-2 次。 如果輸入 5 循環將執行 3 次。 輸出將 5*4*3*2

int factorial(int x)
{ 
    for(int i =x-1; i>1; i--)
    { 
          x = x * i; 
    } 
    return x;
 }

暫無
暫無

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

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