题目描述
回到小学----
真分数:分子小于分母的分数
既约分数:分子分母互质,也就是说最大公约数是 1
x 星球数学城的入口验证方式是:
屏幕上显示一个真分数,需要你快速地找到一个比它小的既约分数,要求这个
分数越大越好。
同时限定你的这个分数的分母不能超过 100。
解法一
python代码
#稍小分数
def solution(a,b):
Max = -1
t = []
for i in range(1,b): #分母
for j in range(i): #分子
if j/i < a/b and j % i != 0 and j/i > Max:
Max = j/i
t = [j,i]
return tuple(t)
if __name__ == '__main__':
ans = 0
print('请输入分子a = ',end='')
a = int(input()) #分子
print('请输入分母b = ',end='')
b = int(input()) #分母
ans = solution(a,b)
print('{}/{}'.format(ans[0],ans[1]))
运行结果
java代码
import java.util.Scanner;
/*excel 地址*/
public class homework07 {
private static int[] solution(int a,int b) {
int[] res = new int[2];
int i,j;
double max = -1.0;
for (i = 1; i < b; i++) {
for (j = 0; j < i; j++) {
if ( (double)j/(double)i < (double)a/(double)b && j%i != 0 && (double)j/(double)i > max ){
max = (double)j/(double)i;
res[0] = j; res[1] = i;
}
}
}
return res;
}
public static void main(String[] args) {
int a,b;
Scanner sc = new Scanner(System.in);
System.out.println("请输入分子:");
a = sc.nextInt();
System.out.println("请输入分母:");
b = sc.nextInt();
sc.close();
int[] res = new int[2];
res = solution(a,b);
System.out.println(res[0]+"/"+res[1]);
}
}