该题我们可以想象成只有1根香肠,需要切掉m-1刀,同时某些情况下我们还需要减去因香肠本来就是分开的而无需切的刀,这里有个公式:解=M-gcd(N,M) (gcd即最大公约数)。
下面附上代码
#include <iostream>
using namespace std;
int yue(int x,int y)//求最大公约数
{
int k=min(x,y),ans=1;
for(int i=1;i<=k;i++)
{
if(x%i==0&&y%i==0)
ans=i;
}
return ans;
}
int main()
{
int n,m;
cin>>n>>m;
cout<<m-yue(n,m);
return 0;
}