编写一个找到两位数字A和B的程序(不要搜索网页, 并且不要尝试'手动')这样我们得到一个两位数的AB(比如说 A = 8,B = 9则数字为89),因此AB * AB = CAB 一些数字C.因此,如果您对AB进行平方,则会获得一个3位数字。该 AB ^ 2中的两个最后数字是AB,但第一个数字是可能的一些C. 与A或B无关。
答案 0 :(得分:2)
在伪代码中,您可以简单地执行以下操作:
def findAB (c):
c = c multiplied by 100
for a in 0..9: # or possibly 1..9
for b in 0..9:
set ab to a multiplied by 10 plus b
if (ab multiplied by ab) is equal to (c plus ab):
return (a,b)
return nothing
我对伪代码的首选语言已经足够接近Python了,它不应该太难以转换,但你的第一步应该是理解它是如何工作的。为此,您应该在头脑中运行代码,填写如下的变量表:
c | a | b | ab | return
-----+-----+-----+------+----------
| | | |
| | | |
| | | |
| | | |
你越早开始像机器一样思考,你会变得更好的程序员 - 只要确保你没有启动所有这些社交技能,他们仍然会在你生活的某些方面派上用场: - )
答案 1 :(得分:2)
简单地说,在代码中:
for a in range(1,10):
for b in range(10):
ab = a*10+b
ab2 = ab*ab
if (ab2 % 100) == ab:
print "a=",a,", b = ",b
答案 2 :(得分:0)
作为蛮力的替代方案,花两分钟思考问题。想想A - A可能是最小的数字是多少?什么是最大的?想想B - B有一些特别的东西,一些特殊的属性,总共10个数字中只有4个有。最后,你仍然需要为A和B循环几组数字,但是如果你只使用一组可能的数字,你将表明你已经在你的解决方案中加入了一些聪明的想法。正如我之前所说,这个问题概括为一些有趣的大案例,例如,你可以找到一个数字ABCDEF,当平方给出###### ABCDEF。
奖励:你认为有这个属性的可能数量最大吗?