Tag: 回文

对回文产品问题感到困惑

我一直在学习Ruby,所以我想我会尝试一些项目的Euler难题。 令人尴尬的是,我只是解决了问题4 … 问题4如下: 回文数字读取两种方式相同。 由两个2位数字的乘积制成的最大回文是9009 = 91×99。 找到由两个3位数字的乘积制成的最大回文。 所以我想我会在一个嵌套的for循环中从999循环到100并对回文进行测试,然后当我找到第一个(应该是最大的一个)时突破循环: final=nil range = 100…1000 for a in range.to_a.reverse do for b in range.to_a.reverse do c=a*b final=c if c.to_s == c.to_s.reverse break if !final.nil? end break if !final.nil? end puts final 这确实输出了回文580085,但显然这不是该范围内两个三位数字的最高乘积。 奇怪的是,如果我将范围更改为10 … 100,则相同的代码成功返回9009,就像在示例中一样。 谁能告诉我哪里出错了? 还有,有一种更好的方法可以打破内部循环吗? 谢谢