开始没什么思路,看了别人的博客才豁然开朗,有思路代码就很简单了,把蛋糕分成p块,再拼在一起分成q块,分成p块需切p刀,分成p块需切p刀,拼在一起则需减去公共部分,即需切p+q-gcd(p,q)刀
#include <stdio.h>
int gcd(int p,int q)
{
int r,t=0;
if(p<q){
t=p;
p=q;
q=t;
}
r=p%q;
while(r!=0){
p=q;
q=r;
r=p%q;
}
return q;
}
int main()
{
int p,q;
while(scanf("%d%d",&p,&q)!=EOF){
printf("%d\n",p+q-gcd(p,q));
}
}