摘要: 两个数的最大公约数的求解方法。 阅读全文
posted @ 2011-12-26 20:24 菜鸟哥 阅读(184) 评论(0) 推荐(0)
摘要: 这个题的感触是时间的限制,当你使用循环的时候时间会超时,所以必须找到一种更好的算法来解决这个问题。问题定义: A青蛙,初始位置为a,每跳得距离为m;B青蛙,初始位置为b,每跳得距离为n,总长度是L。(1)使用循环求解: 用if( ( (a+m*i)-(b+n*i) )%L==0)为真,则两只青蛙可以相遇。但是这个循环不知道到什么时候停止下来, 可能会运行很长的时间才能停下来。所以这种方法不可行的。(2)使用数论的求解方法:此题其实就是扩展欧几里德算法-求解不定方程,线性同余方程。 设过s步后两青蛙相遇,则必满足以下等式: (x+m*s)-(y+n*s)=k*l(k=0,1,2..... 阅读全文
posted @ 2011-11-26 13:19 菜鸟哥 阅读(143) 评论(0) 推荐(0)