设a,b是给定的正整数。现有一机器人沿着一个有n级的楼梯上下。机器人每上升一次,恰好上升a级楼梯,每下降一次恰好下降b级楼梯。为使机器人经过若干次上下升降后,可以从地面到达楼梯顶,然后再返回地面,请给出n的最小值。
看完题目细想以下,发现可以将式子写成如下的形式。
ax+by=n,x、y为整数。(1)
假设a’、b’互质,那么有
a′x+b′y=gcd(a′,b′)=1
哎?那不正好?
n=gcd(a,b)的话,
(1)式同除以gcd(a,b)得到二式,正好满足。
于是,这个程序
int gcd(int a,int b){
return a%b==0?b:gcd(b,a%b);
}
就没了。。。