最难还是数学呀...T_T...数学不好的将来会被轰成渣渣吧...T_T...但愿刷题能把智商刷上去。
http://acm.hdu.edu.cn/showproblem.php?pid=1722
百度大神的博客才想明白的...自愧不如...T_T...
- 公式q+p-gcd(p,q)
- gcd 求两个数的最大公约数 也就是两种分法重复的部分
- 先把蛋糕分成q份,然后把蛋糕拼在一起,然后再分成p份。
- 分成q份需要切q刀,分成p份需要切p刀,但是会有重复,减去重复的部分就是gcd(p,q)
1 #include<stdio.h> 2 3 int Gcd(int m, int n) 4 { 5 return m == 0 ? n : Gcd(n % m, m); 6 } 7 8 int main() 9 { 10 int m, n; 11 while(scanf("%d%d", &m, &n) != EOF) 12 { 13 printf("%d ", m + n - Gcd(m, n)); 14 } 15 return 0; 16 }
这个求最大公约数的方法简直超神了,一行代码搞定,而且不用判断m,n大小,吓尿....