Find the largest palindrome made from the product of two 3-digit numbers.
找到能表示成两个三位数乘积的最大的回文数。
思路就是遍历所有三位数的乘积判断是不是回文数,再选出最大的来
result = 0 999.downto(100) do |x| 999.downto(100) do |y| if (x * y).to_s.reverse == (x * y).to_s result = [result, x*y].max end end end p result
这个也是06年的。当时物理老师讲到了,下课我就去做了出来
原理如下:
有一个半径为r的圆外接一个边长为2r的正方形。
S圆 = r**2*pi
S方 = 2r**2
现在往正方形里撒点,撒到圆里的点的个数比撒到圆外的点的个数的比就是一个与pi有关的式子,就能估算出近似的pi来,撒的点越多值越精确。
最早写这个的时候是2006年,我还在上高一。用了大概两个中午的时间。
写完之后才发现原来mathn库里已经有了这个方法。
不过令人欣慰的是我写的比它快!
以下是代码