Python: Как сделать алгоритм, если я дам значение переменной string, то выполнился второе условие, а если integer, то первое? В фотографии алгоритм является ошибочным
ты полюбому дашь на проверку переменную типа string судя по первой строчке. Но я понял что нужно проверить если введены только число, то это int, иначе string.
Действия выполняются в обратном порядке. Последнее действие было "из нечетных цифр вычитается,а к четным прибавляется 1".Из нечетных цифр вычли 1 и они стали четными (при вычитании единицы меняется четность), с четными все то же самое, только наоборот. Значит нужно ко всем четным цифрам прибавить 1, а от нечетных отнять 1, тогда получится исходная цифра.3216 -> 2307.Итак, знаем, что на предпоследнем шаге было число 2307. Идем еще на шаг назад. "цифры,занимающие четные разряды (нумерация разрядов ведется справа налево начиная с нуля) циклически сдвигаются вправо,а нечетные - влево на количество позиций, равных номеру разряда". Опять же, делаем наоборот. Цифры на четных разрядах сдвигаем влево, а нечетные - вправо. Количество позиций не меняется, только направление.2307 -> 5117Пароль почты Васи: 5117.Традиционно проверочка...Имеем 5117.Семь сдвигаем вправо на 0.7 -> 7.Один сдвигаем влево на 1.1 -> 0.Один сдвигаем вправо на 2.1 -> 3.Пять сдвигаем влево на 3.5 -> 2.Получаем 2307.От нечетных цифр отнимаем 1, а к четным прибавляем.Получаем 3216. Что и было дано изначально.
M = [] n=20 base=2 for i in 0...(base**n) bin = i m[i]=[] for j in 0...n m[i][j] = bin % base bin/=base end end
start = 17 stop=729 min="22222222222222222222222222" s="" m.each do |ops| num = start s="" ops.each do |op| if op==0 num+=1 s+="1" else num*=2 s+="2" end if num >= stop then break end end # if (num == stop) then p s end if (num == stop) and (s.size<min.size) then min=s end end p min
name = input()
try:
name = int(name)
print("Вы ввели число")
except:
print("Вы ввели не число")