“Code Farmer” 从一个博主那里看到,就引用过来了。
“算法是程序的灵魂,更是衡量一个程序员水平高低的最好标尺”相信这句话大家都很赞同吧。算法,多么魅力的一个字眼,多少码农为之痴狂!可是,最近有一种感觉越来越强烈:最优的算法是用数学思维设计出来的。码农们,悲剧了。。
举个例子:一个整数加上100是一个完全平方数,加上168后是另一个完全平方数。请你利用计算机把这个或这些数求出来。
分析:可以肯定的是(而且我百度了一下,确实如此),相当一部分人采用枚举的思路,同时还要给数设定一个上限(计算机最怕的就是看不到终点),这样会不会产生一个疑问:后面枚举不到的数中会不会还有满足条件的数呢?有可能。但是,计算机永远无法穷尽数。所以,只能给个不完全的答案。
how abt this:
题目的意思不就是 两个不同的完全平方数差68吗。不妨设这两个完全平方数为x2 Y2. (X>Y)
X2-Y2=68 更进一步,(X+Y)(X-Y)=68且X+Y 和 X-Y都为整数。
68=2*2*17. 显然,X+Y>X-Y. X+Y只能取 2*17 或者 2*2*17
1. X+Y=34 X-Y=2 → X=18 Y=16
2. X+Y=68 X-Y=1 无解。
所以,要求的数只有一个,且为:16^2-100=156.
over.
怎么样,是否跟我有同感呢?
(厚道做人,转载不忘原作者)