C语言题目:最简真分数序列描述 所谓最简真分数是指分子小于分母,且不能约分的分数.给定 n(1 < n < 200)个非负整数(每个整数不超过3位),哪两个整数分别作为分子和分母能够构成最简真
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/10 15:36:03
![C语言题目:最简真分数序列描述 所谓最简真分数是指分子小于分母,且不能约分的分数.给定 n(1 < n < 200)个非负整数(每个整数不超过3位),哪两个整数分别作为分子和分母能够构成最简真](/uploads/image/z/9331948-28-8.jpg?t=C%E8%AF%AD%E8%A8%80%E9%A2%98%E7%9B%AE%EF%BC%9A%E6%9C%80%E7%AE%80%E7%9C%9F%E5%88%86%E6%95%B0%E5%BA%8F%E5%88%97%E6%8F%8F%E8%BF%B0+%E6%89%80%E8%B0%93%E6%9C%80%E7%AE%80%E7%9C%9F%E5%88%86%E6%95%B0%E6%98%AF%E6%8C%87%E5%88%86%E5%AD%90%E5%B0%8F%E4%BA%8E%E5%88%86%E6%AF%8D%2C%E4%B8%94%E4%B8%8D%E8%83%BD%E7%BA%A6%E5%88%86%E7%9A%84%E5%88%86%E6%95%B0.%E7%BB%99%E5%AE%9A+n%EF%BC%881+%3C+n+%3C+200%EF%BC%89%E4%B8%AA%E9%9D%9E%E8%B4%9F%E6%95%B4%E6%95%B0%EF%BC%88%E6%AF%8F%E4%B8%AA%E6%95%B4%E6%95%B0%E4%B8%8D%E8%B6%85%E8%BF%873%E4%BD%8D%EF%BC%89%2C%E5%93%AA%E4%B8%A4%E4%B8%AA%E6%95%B4%E6%95%B0%E5%88%86%E5%88%AB%E4%BD%9C%E4%B8%BA%E5%88%86%E5%AD%90%E5%92%8C%E5%88%86%E6%AF%8D%E8%83%BD%E5%A4%9F%E6%9E%84%E6%88%90%E6%9C%80%E7%AE%80%E7%9C%9F)
C语言题目:最简真分数序列描述 所谓最简真分数是指分子小于分母,且不能约分的分数.给定 n(1 < n < 200)个非负整数(每个整数不超过3位),哪两个整数分别作为分子和分母能够构成最简真
C语言题目:最简真分数序列
描述
所谓最简真分数是指分子小于分母,且不能约分的分数.给定 n(1 < n < 200)个非负整数(每个整数不超过3位),哪两个整数分别作为分子和分母能够构成最简真分数.输出所有的最简真分数组合;若没有,则输出NO.
关于输入
第1行为正整数个数n 其后为n个非负整数,空格间隔.
关于输出
输出所有最简真分数,分子小的排在前面;若分子相同,分母小的排在前面.各分数之间用逗号间隔.若没有,则输出NO
例子输入
83 7 11 0 5 13 15 9
例子输出
3/5,3/7,3/11,3/13,5/7,5/9,5/11,5/13,7/9,7/11,7/13,7/15,9/11,9/13,11/13,11/15,13/15
C语言题目:最简真分数序列描述 所谓最简真分数是指分子小于分母,且不能约分的分数.给定 n(1 < n < 200)个非负整数(每个整数不超过3位),哪两个整数分别作为分子和分母能够构成最简真
python程序如下:
def HaveGongYue(a,b):
for i in range(a+1)[2:]:
if b % i == 0 and a % i == 0:
return True
return False
def test(l):
a = sorted(l)
la = len(a)
if la > 1 and a[0] == 0:
a = a[1:]
for i in range(la)[:-1]:
b = a[i]
for ii in range(i+1,la):
bb = a[ii]
if b == 1:
print "%d/%d" % (b,bb)
else:
if( not HaveGongYue(b,bb) ):
print "%d/%d" % (b,bb)
if __name__ == '__main__':
a = int(raw_input())
l = []
while a != 0:
l += [a]
a = int(raw_input())
test(l)