2012年11月18日
摘要: 题意:输入一个n,按从小到大的顺序输出从0到1之间的所有分母不大于n的最简分数。比较容易想到的是排序。可以用结构体表示一个分数,将所有符合条件的分数都存到数组里,然后sort一下,输出就行。注意cmp函数的写法bool cmp(node x,node y) { return x.a*y.b<x.b*y.a; //比较两个分数的大小,交叉相乘 }最近刚学了二叉树,可以用二叉查找树,实现插入排序。0/1和1/1这两个值只能逼近不能达到,直接输出即可。根据二叉查找树的性质,显然1/2是该树的head。然后分子分母从小到大,往树里进行插入。如果发现树中已有相同的值,说明该分数不是最简,而且已经有 阅读全文
posted @ 2012-11-18 23:41 MicZ 阅读(236) 评论(0) 推荐(0)