剛看到這個題還是比較懵,雖然看懂了題意,但是並沒有什麼思路。於是列舉了大量的例子,發現了錯誤的規律,就直接WA了。百思不得其解,於是就上網找了一下題解。才真正知道原理。可以把蛋糕看成是矩形,然後先切均等切成p塊,然後切成q塊,減去重疊的切線,也就是q和p的公約數,就是蛋糕的塊數。下面給手寫圖示:
http://blog.csdn.net/niushuai666/article/details/7011139
不難理解,但是能想到我是真的佩服
#include <stdio.h>
#include <iostream>
using namespace std;
int gcd(int x, int y){
int g;
if (y==0)
g = x;
else
g = gcd(y, x%y);
return g;
}
int main()
{
int p, q;
while (scanf("%d %d", &p, &q) != EOF){
int gcdx = gcd(p, q);
//cout << gcdx;
cout << p+q-gcdx << endl;
}
return 0;
}