-
2005-12-24
玩一下google编程挑战赛试题
题在这里:
http://blog.donews.com/wysuperfly/archive/2005/12/22/667661.aspx
简单说就是:一个表示为I.F(L)*的有理数,如何转换成分数.
三部分:
1.处理输入字符串,找出循环小数的循环部分和前缀. 1.234(56), 1.23是前缀,(56)是循环部分. I.F(L)*,I.F是前缀,L是循环部分.
2.转换成分数.对前缀,分子用前缀串,分母用10的N次方,N是前缀的小数部分.对循环部分,分子是循环串,分母是10的M次方-1,M是循环串长度.用正则表式法会更清楚,不过太长,不写了.其实就是:
IF / (10^(length_of(F))) + L / (10 ^ (length_of(L)) - 1)
3.加和,用中国最大公约数算法约分.
共1页 1







