[問題] 一個關於遞回的問題
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
long sum(int n)
{
if(n==2) return 1*2;
return (n*(n-1)+sum(n-1));
}
int main()
{
int n;
printf("key in:");
scanf("%d",&n);
printf("sum(%d) = %i",n,sum(n));
system("PAUSE");
return 0;
}
希望得到的正確結果:
這是計算1*2+2*3+3*4+....+(n-1)*n的遞回函式
只是我發現當我輸入37500或是37555時,卻會出現負號,
但我輸入100000時,沒有問題,想請問是甚麼原因呢?
程式跑出來的錯誤結果:
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
有問題的code: (請善用置底文標色功能)
補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.27.29
→
10/03 21:51, , 1F
10/03 21:51, 1F
→
10/03 21:53, , 2F
10/03 21:53, 2F
推
10/03 21:56, , 3F
10/03 21:56, 3F
→
10/03 22:01, , 4F
10/03 22:01, 4F
推
10/03 22:31, , 5F
10/03 22:31, 5F
→
10/03 22:31, , 6F
10/03 22:31, 6F
推
10/03 22:35, , 7F
10/03 22:35, 7F
→
10/03 22:45, , 8F
10/03 22:45, 8F
推
10/03 22:49, , 9F
10/03 22:49, 9F
→
10/03 23:13, , 10F
10/03 23:13, 10F
→
10/03 23:15, , 11F
10/03 23:15, 11F
→
10/03 23:38, , 12F
10/03 23:38, 12F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章