题目描述
回到小学----
真分数:分子小于分母的分数
既约分数:分子分母互质,也就是说最大公约数是1
x星球数学城的入口验证方式是:
屏幕上显示一个真分数,需要你快速地找到一个比它小的既约分数,要求这个分数越大越好。
同时限定你的这个分数的分母不能超过100。
如下代码很暴力地解决了这个问题,请仔细分析,并填写划线部分缺失的代码。
代码
int gcd(int a, int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int main()
{
// 这是屏幕上显示的那个分数 a/b
int a = 7;
int b = 13;
int m,n;
int max_a = 0;
int max_b = 1;
for(n=100; n>1; n--){
for(m=n-1; m>=1; m--){
if(m*b<a*n && gcd(m,n)==1){
if( max_a*n<max_b*m){ //填空
max_a = m;
max_b = n;
break;
}
}
}
}
printf("%d/%d\n", max_a, max_b);
return 0;
}