[英]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.