программа, которая находит результаты двухзначного Python - PullRequest
2 голосов
/ 29 марта 2011

Напишите программу, которая находит две цифры A и B (не ищите в Интернете и не пытайтесь «вручную»), чтобы мы получили двузначное число AB (скажем, A = 8, B = 9, тогда число равно 89).и поэтому AB * AB = CAB для некоторой цифры C. Таким образом, если вы возведете в квадрат AB, вы получите 3-значное число.Две последние цифры в AB ^ 2 - это AB, но первая цифра - это некоторая буква C, которая не обязательно связана с A или B.

Ответы [ 3 ]

2 голосов
/ 29 марта 2011

Просто, в коде:

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 голосов
/ 29 марта 2011

В псевдокоде вы можете просто сделать что-то вроде:

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
-----+-----+-----+------+----------
     |     |     |      |
     |     |     |      |
     |     |     |      |
     |     |     |      |

Чем раньше вы начнете думать, как машина, тем лучше станете программистом - просто убедитесь, что вы не загружаете все эти социальные навыки, хотя они все равно пригодятся в определенные моменты вашей жизни: -)

0 голосов
/ 29 марта 2011

В качестве альтернативы грубой силе потратьте две минуты и подумайте о проблеме.Подумайте об А - какое наименьшее число А может быть?Какой самый большой?Подумайте о B - в B есть что-то особенное, какое-то особенное свойство, которым обладают только 4 из 10 цифр.В конце концов, вам все равно придется зацикливаться на паре наборов чисел для A и B, но если вы используете только набор вероятных чисел, вы покажете, что вложили некоторую разумную мысль в свое решение.И, как я уже говорил ранее, эта проблема обобщается на некоторые интересные более крупные случаи, например, вы можете найти число ABCDEF, которое при квадрате дает ###### ABCDEF.

Бонус: вы думаете,максимально возможное число, которое имеет это свойство?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...