举个例子:4 6,用一个矩形来切割,如下图

蓝色点线表示4等分线 红色实线表示6等分线,让蛋糕(矩形)可以平分为4份需要(4刀)和6份需要(6刀),总共需要10刀,但因为其中有两条线是重合的,没有必要切两次,所以应该减掉这两刀,就只剩下
10-2=8刀了。对于任何p和q,他们重合的线的数量就是他们的GCD,所以就~~~~~
看完题 一点思路都没有 看了这个基本明白了。。解释的很巧妙。。所以先转载过来,公式是p+q-gcd(p,q)
代码很简单:
#include <iostream>
#include <stdio.h>
using namespace std;
int gcd(int a,int b)
{
if(b==0)return a;
else return gcd(b,a%b);
}
int main()
{
int p,q;
while(cin>>p>>q)
{
cout<<p+q-gcd(p,q)<<endl;
}
return 0;
}
本文通过实例解析如何运用数学原理解决实际问题,具体为如何使用最少的切割次数将矩形平分为指定数量的部分。通过计算最大公约数(GCD)来优化切割策略,实现高效解题。
115

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



