#616: 幫我看看哪裡有錯?(用遞迴)


fishwish (Fish)

學校 : 國立臺南女子高級中學
編號 : 2356
來源 : [180.177.105.160]
最後登入時間 :
2017-12-31 11:27:54
a032. 我愛寫程式 | From: [59.116.172.34] | 發表日期 : 2008-09-28 14:18

#include<iostream>
using namespace std;
int f(int n);
int main(){
  int n;
 while(cin>>n){
  if(n==0)
  cout<<n+1<<endl;
  else
  cout<<f(n)<<endl;
 }
 return 0;
 }
int f(int n){
if(n==1)
return 1;
if(n==2)
return 2;
else
return f(n-1)*n;

}

 

我測試了,

結果在n=13時錯了

我不懂為什麼?是溢位嗎??

 
#618: Re:幫我看看哪裡有錯?(用遞迴)


m80126colin (許胖)

學校 : 新北市立板橋高級中學
編號 : 2331
來源 : [35.203.227.81]
最後登入時間 :
2020-12-25 10:47:06
a032. 我愛寫程式 | From: [220.135.169.23] | 發表日期 : 2008-09-28 15:08

#include<iostream>using namespace std;int f(int n);int main(){  int n; while(cin>>n){  if(n==0)  cout<<n+1<<endl;  else   cout<<f(n)<<endl; } return 0; }int f(int n){if(n==1)return 1;if(n==2)return 2;elsereturn f(n-1)*n;

}

 

我測試了,

結果在n=13時錯了

我不懂為什麼?是溢位嗎??

 

"輸出 n! 結果,結果不大於 263"
是溢位沒錯.....
請使用long long   (-264~232-1)




 

 
#619: Re:幫我看看哪裡有錯?(用遞迴)


m80126colin (許胖)

學校 : 新北市立板橋高級中學
編號 : 2331
來源 : [35.203.227.81]
最後登入時間 :
2020-12-25 10:47:06
a032. 我愛寫程式 | From: [220.135.169.23] | 發表日期 : 2008-09-28 15:10

#include<iostream>using namespace std;int f(int n);int main(){  int n; while(cin>>n){  if(n==0)  cout<<n+1<<endl;  else   cout<<f(n)<<endl; } return 0; }int f(int n){if(n==1)return 1;if(n==2)return 2;elsereturn f(n-1)*n;

}

 

我測試了,

結果在n=13時錯了

我不懂為什麼?是溢位嗎??

 

"輸出 n! 結果,結果不大於 263" 是溢位沒錯..... 請使用long long   (-264~232-1)

 

 

更正  long long 範圍為 -264~264-1

 
#622: Re:幫我看看哪裡有錯?(用遞迴)

Unknown User

a032. 我愛寫程式 | From: [218.163.194.191] | 發表日期 : 2008-09-28 16:34

#include<iostream>using namespace std;int f(int n);int main(){  int n; while(cin>>n){  if(n==0)  cout<<n+1<<endl;  else   cout<<f(n)<<endl; } return 0; }int f(int n){if(n==1)return 1;if(n==2)return 2;elsereturn f(n-1)*n;

}

 

我測試了,

結果在n=13時錯了

我不懂為什麼?是溢位嗎??

 

"輸出 n! 結果,結果不大於 263" 是溢位沒錯..... 請使用long long   (-264~232-1) 

 

 

更正  long long 範圍為 -264~264-1

其實是  long long 範圍是為 -263~263-1

二補數阿 XD
 
ZeroJudge Forum