我正在用C++編寫一個階乘函數。我有功能正常工作。然而,要求的是,如果 參數是肯定的,則函數必須計算並返回提供給它的數字的階乘(其參數)。如果它接收到一個負數或零的參數,該函數必須返回-1。 我似乎無法讓它返回-1爲零或負數,沒有它也返回負數的正常因子計算。這是我的代碼到目前爲止。如果輸入零或1作爲參數,則C++析因函數必須返回-1
#include <iostream>
using namespace std;
long factorial(int x)
{
if(x>1)
return (x*factorial(x-1));
else
return -1;
}
int main()
{
int number;
cout << "Enter a number: " << endl;
cin >> number;
cout << factorial(number);
cout << endl;
return 0;
}
切換if/else語句的順序。首先檢查0/1並返回-1,否則計算階乘 – dchhetri 2014-10-05 19:21:27
12!是適合32位整數的最大因子。任何更大的將會溢出並可能會給你一個負面的結果。 – jrok 2014-10-05 19:22:40
@jrok是不是從'34!'開始的'0'? (否則,我認爲_half_結果是否定的。) – AlexD 2014-10-05 19:35:10