[問題] 擴增歐幾里得演算法的遞迴版本
這個程式碼是用原本的歐幾里得演算法改的(為了記錄x和y)
用迴圈來寫我看得懂,可是用遞迴來寫我就有點看不懂了
我不懂的地方是 *x 和 *y 的傳遞為何是這樣?
可以麻煩解釋一下黃色那兩行的意義嗎?
int ex_gcd(int a, int b, int *x, int *y){
int x1, y1, g;
if(b>a)
return ex_gcd(b, a, y, x);
if(b==0){
*x = 1;
*y = 0;
return a;
}
g = ex_gcd(b, a%b, &x1, &y1);
*x = y1;
*y = (x1-a/b*y1);
return g;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.199.129
→
06/04 01:04, , 1F
06/04 01:04, 1F
→
06/04 08:36, , 2F
06/04 08:36, 2F
→
06/04 08:39, , 3F
06/04 08:39, 3F
推
06/04 09:30, , 4F
06/04 09:30, 4F
→
06/04 09:31, , 5F
06/04 09:31, 5F
→
06/04 09:36, , 6F
06/04 09:36, 6F
推
06/04 09:43, , 7F
06/04 09:43, 7F
→
06/04 09:44, , 8F
06/04 09:44, 8F
→
06/04 09:44, , 9F
06/04 09:44, 9F
→
06/04 09:55, , 10F
06/04 09:55, 10F
→
06/04 10:08, , 11F
06/04 10:08, 11F
→
06/04 10:10, , 12F
06/04 10:10, 12F
→
06/04 11:29, , 13F
06/04 11:29, 13F
→
06/04 11:30, , 14F
06/04 11:30, 14F
→
06/04 11:31, , 15F
06/04 11:31, 15F
推
06/04 12:19, , 16F
06/04 12:19, 16F
→
06/04 12:19, , 17F
06/04 12:19, 17F
→
06/04 12:20, , 18F
06/04 12:20, 18F
→
06/04 12:35, , 19F
06/04 12:35, 19F
→
06/04 12:36, , 20F
06/04 12:36, 20F
→
06/04 12:37, , 21F
06/04 12:37, 21F
→
06/04 12:38, , 22F
06/04 12:38, 22F
→
06/04 12:40, , 23F
06/04 12:40, 23F
→
06/04 12:40, , 24F
06/04 12:40, 24F
推
06/04 12:45, , 25F
06/04 12:45, 25F
→
06/04 12:46, , 26F
06/04 12:46, 26F
→
06/04 12:58, , 27F
06/04 12:58, 27F
→
06/04 12:58, , 28F
06/04 12:58, 28F
→
06/04 12:59, , 29F
06/04 12:59, 29F
→
06/04 13:00, , 30F
06/04 13:00, 30F
→
06/04 13:00, , 31F
06/04 13:00, 31F
→
06/04 13:08, , 32F
06/04 13:08, 32F
→
06/04 13:09, , 33F
06/04 13:09, 33F
→
06/04 13:11, , 34F
06/04 13:11, 34F
→
06/04 13:11, , 35F
06/04 13:11, 35F
→
06/04 13:14, , 36F
06/04 13:14, 36F
→
06/04 15:16, , 37F
06/04 15:16, 37F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章