题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722
解题思路:
这个想了半天也没想出什么好的办法。。。。。。google之~~
举个例子:4 6,用一个矩形来切割,其实应该是圆的。这里边界也得加上,因为首位其实是相连的。。。自己动手画下圆形的蛋糕模拟。
蓝色点线表示4等分线 红色实线表示6等分线,让蛋糕(矩形)可以平分为4份需要(4刀)和6份需要(6刀),总共需要10刀,但因为其中有两条线是重合的,没有必要切两次,所以应该减掉这两刀,就只剩下10-2=8刀了。对于任何p和q,他们重合的线的数量就是他们的公约数。
所以公式就是:p+q-gcd(p,q)
代码如下:
#include<stdio.h>
int Gcd(int m, int n)
{
return m == 0 ? n : Gcd(n % m, m);
}
int main()
{
int m, n;
while(scanf("%d%d", &m, &n) != EOF)
{
printf("%d\n", m + n - Gcd(m, n));
}
return 0;
}