GCDwronganswer了,24行代码递归

P2660 zzc 种田

是不是gcd那里错了,我背的模板和你的不一样。你可以直接用__gcd(a,b)
by xiaoqi0 @ 2021-03-03 23:56:41


```cpp int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } ```
by Reywmp @ 2021-03-04 07:39:06


@[阿尔托莉雅丶](/user/105820) $\gcd(x,y)$ 和 $\gcd(y,x\%y)$ 是相同的,为啥要在 $\gcd(y,x\%y)$ 后面再加上 $x/y*y$ 啊qwq
by vectorwyx @ 2021-03-04 07:49:09


@[阿尔托莉雅丶](/user/105820) `if(x%y==0)`那儿应该`return y`吧
by oisdoaiu @ 2021-03-04 08:46:06


@[vectorwyx](/user/238408) 不不不你看一下题,这道题求的不是gcd
by oisdoaiu @ 2021-03-04 08:46:43


``` #include <iostream> #include <algorithm> using namespace std; long long a, b; long long gcd(long long x, long long y) { if(x % y == 0) return x * 4; else return gcd(y, x % y) + x / y * y * 4; } int main(void) { cin >> a >> b; if(a < b) swap(a, b); cout << gcd(a, b); return 0; } ``` 我把*4提公因式这个放进去就对了 这个*4不能为什么不能提出来呢?
by 阿尔托莉雅丶 @ 2021-03-04 09:47:02


思路和题解里面递归求解是一样的
by 阿尔托莉雅丶 @ 2021-03-04 09:50:19


@[oisdoaiu](/user/56825) 考虑8 2这种输入 应该就是return x才对
by 阿尔托莉雅丶 @ 2021-03-04 09:54:41


|