开始没什么思路,看了别人的博客才豁然开朗,有思路代码就很简单了,把蛋糕分成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));
}
}
本文通过解析蛋糕如何被切成特定数量的块来解决一个有趣的数学问题。利用最大公约数(gcd)减少重复切割,实现最优切割方案。文章提供了一段简洁的C语言代码示例,演示如何计算最少切割次数。
603

被折叠的 条评论
为什么被折叠?



