查找两位数python结果的程序

时间:2011-03-29 03:05:56

标签: python user-input

编写一个找到两位数字A和B的程序(不要搜索网页, 并且不要尝试'手动')这样我们得到一个两位数的AB(比如说 A = 8,B = 9则数字为89),因此AB * AB = CAB 一些数字C.因此,如果您对AB进行平方,则会获得一个3位数字。该 AB ^ 2中的两个最后数字是AB,但第一个数字是可能的一些C. 与A或B无关。

3 个答案:

答案 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。

奖励:你认为有这个属性的可能数量最大吗?