第一次用遞迴寫
#include <stdio.h>
int gcd( unsigned int a, unsigned int b) {
if ( a % b ){
return gcd( b, a % b );
}
return b;
}
int main() {
unsigned int a, b;
while( scanf("%d %d", &a, &b) != EOF ) {
printf("%d\n", gcd(a, b));
}
return 0;
}
執行時發生錯誤 (SIGFPE)(8)!!
可能原因包含溢位或者除以0的問題
sh: line 1: 1700 浮點數出錯
第二次改用迴圈就過了!
#include <stdio.h>
int main() {
long int a = 1, b = 1, r;
while( scanf("%d %d", &a, &b) != EOF ) {
while( b != 0 ) {
r = a % b;
a = b;
b = r;
}
printf("%d\n", a);
}
return 0;
}
為什麼第一次的寫法會錯?看半天,實在找不出原因。大大們可以指點一下嗎?
第一次用遞迴寫
#include
int gcd( unsigned int a, unsigned int b) {
if ( a % b ){
return gcd( b, a % b );
}
return b;
}
int main() {
unsigned int a, b;
while( scanf("%d %d", &a, &b) != EOF ) {
printf("%d\n", gcd(a, b));
}
return 0;
}
執行時發生錯誤 (SIGFPE)(8)!!
可能原因包含溢位或者除以0的問題
sh: line 1: 1700 浮點數出錯
為什麼第一次的寫法會錯?看半天,實在找不出原因。大大們可以指點一下嗎?
第一次用遞迴寫
(恕刪)
執行時發生錯誤 (SIGFPE)(8)!!
可能原因包含溢位或者除以0的問題
sh: line 1: 1700 浮點數出錯
為什麼第一次的寫法會錯?看半天,實在找不出原因。大大們可以指點一下嗎?
謝謝大大回應!
確實是用 c 解題,也確實是發生RE (SIGFPE) 錯誤 (訊息如上);
很想知道原因,所以請大大們解惑,讓小弟長長知識。
第一次用遞迴寫
(恕刪)
執行時發生錯誤 (SIGFPE)(8)!!
可能原因包含溢位或者除以0的問題
sh: line 1: 1700 浮點數出錯
為什麼第一次的寫法會錯?看半天,實在找不出原因。大大們可以指點一下嗎?
謝謝大大回應!
確實是用 c 解題,也確實是發生RE (SIGFPE) 錯誤 (訊息如上);
很想知道原因,所以請大大們解惑,讓小弟長長知識。
377257 | guest | a024. 最大公因數(GCD) | AC (2ms, 270KB) | C | 2009-12-17 23:27 |
我用 guest 帳號幫你測試
用的是你的遞迴程式碼
還蠻奇怪的@@
(恕刪)
我用 guest 帳號幫你測試
用的是你的遞迴程式碼 還蠻奇怪的@@