Определить, является ли десятичная запись числа симметричной
Дано четырехзначное число. Определите, является ли его десятичная запись симметричной. Если число симметричное, то выведите 1, иначе выведите 2. Число может иметь меньше четырех знаков, тогда нужно считать, что его десятичная запись дополняется слева незначащими нулями.
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами
Вводится четырехзначное число.
Вывод:
1
Пример 2
Ввод:
2008
Определить, является ли десятичная запись числа симметричной
Здравствуйте! Я не понимаю, почему мог код неверен. Я знаю правильный ответ, однако меня.
Дано четырехзначное число. Определите, является ли его десятичная запись симметричной
Есть новая задача куда по круче этой. Вот условие Симметричное число Дано четырехзначное число.
Функция: проверить, является ли десятичная запись цифр числа палиндромом
Дано натуральное число n. Реализовать булевскую рекурсивную функцию, возвращающую истину, если.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include using namespace std; int main() { int n; cin >> n; int p1, p2; p1 = n / 100; p2 = n % 100; p2 = p2 % 10 * 10 + p2 / 10; cout (p2 - p1) + 1 endl; return 0; }
a = int(input()) print((a % 10) * 10 + ((a // 10) % 10) - a // 100 + 1)
a = int(input()) print(min(abs((a%10)*10 + (a//10)%10 - a//100), 1) + 1)
Сообщение от Anacoder
n = int(input()) print(1 if n // 100 == (n % 10 * 10 + n % 100 // 10) else 2)
Определить, встречается ли в десятичной записи числа n десятичная запись числа m
Даны натуральные числа n (n>100) и m (10<m<99). Определить, встречается ли в десятичной записи.
Дана десятичная запись натурального числа N. Определить количество нечетных цифр числа N
Дана десятичная запись натурального числа N. Определить количество нечетных цифр числа N. Что.
Найти все натуральные числа, не превышающие заданного значения N, десятичная запись которых является возрастающей последовательностью цифр
Найти все натуральные числа, не превышающие заданного значения N, десятичная запись которых.
Дана десятичная запись натурального числа N. Найти сумму всех четных цифр числа N
Дана десятичная запись натурального числа N. Найти сумму всех четных цифр числа N.
Симметричное число
В условии одной из задач на этом сайте написано: “Если данное четырехзначное число является симметричным, выведите 1, иначе выведите любое другое целое число”. Для проверки задачи используются заранее подготовленные примеры и правильные ответ на них
Школьнику кажется, что он решил эту задачу, но тестирующая система почему-то не принимает его решение. Школьник думает, что это происходит оттого, что он выводит не то любое другое число, которое записано в правильных ответах.
Напишите программу, которая по ответу, записанному в тестирующей системе и по ответу школьника определяет, верно ли школьник решил задачу.
Входные данные
Программа получает на вход два числа: ответ, записанный в тестирующей системе и ответ школьника.
Выходные данные
Программа должна вывести YES, если школьник дал верный ответ и NO в противном случае.
Симметричное число
Дано целое положительное четырехзначное число. Определите, является ли оно симметричным. Число.
Во введенном тексте найти самое длинное симметричное слово
Во введенном тексте найти самое длинное симметричное слово.
Симметричное число
Помогите пожалуйста! 1. Проверить является ли данное число симметричным (Одинаково пишется слева.
Симметричное число
Помогите пожалуйста 1. Проверьте, является ли число симметричным (одинаково пишется слева направо.
симметричное число
пытаюсь определить, является ли 4-х значное число палиндромом. что я здесь не так делаю? .
Ctrl+Enter
Ошибка или опечатка? Выдели её, нажми Ctrl+Enter и коротко опиши, что не так. Это сделает наши материалы лучше!
Опасный поворот
Чтобы дать возможность извлечь пользу из данного материала людям разного уровня, применяется специальный знак для обозначения материала, необходимого для виртуозов.
Когда этот знак появляется в начале раздела, это предупреждает читателя об «опасном повороте». Не читайте этот блок без необходимости. Для большинства приложений такие детали не имеют значения.
Некоторые блоки настолько экзотичны, что они оценены двумя знаками опасного поворота. Всё, что было сказано о простом знаке опасного поворота, для этих случаев подходит вдвойне. Вам, вероятно, потребуется месячный опыт работы с питоном, прежде чем вы попытаетесь проникнуть в такие дважды опасные глубины питона. В действительности большинству людей никогда не потребуется знать питон в таких подробностях, даже если они пользуются им ежедневно. В конце концов, можно водить машину, не зная, как работает мотор.
Пишем простейшие программы
В предыдущем задании мы использовали Питон для простых разовых вычислений, используя интерактивный режим. Например, было задание вычислить длину гипотенузы прямоугольного треугольника по ее катетам. «Программа» эта выглядела так:
Неплохо для калькулятора, но совсем не универсально: если нужна другая гипотенуза, то нужно брать всё выражение и исправлять в нём отдельные числа. Эту программу можно написать по-другому:
Здесь мы используем переменные — бирки, которые можно повесить на различные (числовые, строковые и прочие) значения в памяти интерпретатора. В первой строке переменной a присваивается значение 179, затем переменной b присваивается значение 971, затем переменной c присваивается значение выражения, равному длине гипотенузы. И наконец в последней строчке мы выводим при помощи функции print получившееся значение.
Программа, которая получилась, длиннее и сложнее, чем та первая, из «калькулятора». Зачем эти сложности? Плюс в том, что значения a и b в такой программе можно брать и не из её кода, а например из того, что пользователь ввёл на клавиатуре. Получится удобный гипотенузный вычислятор: ты ему два числа, а он в ответ гипотенузу.
Переменные в питоне
В питоне же всё, с чем можно работать — это объекты в памяти интерпретатора. А переменные — это бирки, которые к этим объектам привязаны.
Некоторые объекты уже созданы заранее (например, объекты-целые числа от -5 до 255). Другие объекты создаются во время исполнения программы. После того, как объект создан, он живёт независимо от конкретных переменных, на него ссылающихся. Если на объект не ссылается ни одна переменная, то он со временем удаляется из памяти.
Проверка того, ссылаются ли две переменных на один и тот же объект, выполняется при помощи команды is .
Вот несколько примеров объектов и проверок на их совпадение.
>>> a = 123 >>> b = 123 >>> a is b True >>> b = 2 >>> a is b False >>> a = 321 >>> b = 320 + 1 >>> a is b False >>> a == b True
Вполне может быть, что будут существовать два объекта типа число с одним и тем же значением. Так всегда происходит, когда проверить, не создавал ли кто-нибудь ранее точно такой же объект, сложнее, чем создать заново новый. Поэтому нельзя сравнивать переменные при помощи is .
A: Гипотенуза
Даны два числа a и b. Выведите гипотенузу треугольника с заданными катетами.
В этой задаче необходимо прочитать два числа при помощи int(input()) . Вычислить гипотенузу. И вывести получившееся число при помощи функции print .
Решение задачи на Python
Вроде бы все должно работать, но система не пропускает.
Дано четырехзначное число. Определите, является ли его десятичная запись симметричной. Если число симметричное, то выведите 1, иначе выведите любое другое целое число. Число может иметь меньше четырех знаков, тогда нужно считать, что его десятичная запись дополняется слева нулями. Десятичная запись числа симметрична, если при прочтении слева направо и справа налево получается одно и то же число.
При решении задачи можно пользоваться только целочисленными арифметическими операциями. Нельзя пользоваться нелинейными конструкциями: ветвлениями, циклами, функциями.
H = int(input()) f1 = (H // 1000) # первое число в четырехзначном f12 = (H % 10) # последнее число в четырехзначном s1 = (H - (f1 * 1000)) // 100 # второе слева число w1 = (H - (f1 * 1000) - (s1 * 100)) // 10 # третье число слева q = (f12 * 1000) + (w1 * 100) + (s1 * 10) + f1 # обираем с конца print(H // q)
Помогите решить. Где моя ошибка?
Ответы (4 шт):
Можно сравнить строку, представляющую число, с такой же перевернутой, не переводя в int:
num_str = input().zfill(4) if num_str == num_str[::-1]: print(1) else: print(42)
Если использовать .zfill() не разрешено, можно дополнить до четырех знаков самописным куском, например:
H = int(input()) print(H // 1000 == H % 10 and H // 100 % 10 == H % 100 // 10)
Правда, выводит True/False — но ведь это же не проблема?
В комментариях расписано, как и что считается.
V = int(input()) Axxx = V // 1000 # цифра на позиции тысяч xBxx = V % 1000 // 100 # цифра на позиции сотен xxBA = xBxx * 10 + Axxx # зеркальное двузначное число из цифр сотен и тысяч xxCD = V % 100 # младшая (правая) половина числа symmetry = xxBA - xxCD # если 0 - то исходное число симметрично print(symmetry + 1) # выведет 1 если symmetry = 0, иначе будет другое число
H = input() print(int(H[0]) - int(H[3]) + 16*(int(H[1]) - int(H[2])) + 1)
Симметричное число
Дано целое положительное четырехзначное число. Определите, является ли оно симметричным. Число считается симметричным, если оно читается одинаково слева направо и справа налево. Вывести «Да», если число симметричное и «Нет» в противоположном случае. Пример симметричного числа: 2442
Во введенном тексте найти самое длинное симметричное слово
Во введенном тексте найти самое длинное симметричное слово.
Симметричное число
Совсем не пойму условия задачи, помогите, пожалуйста В условии одной из задач на этом сайте.
Симметричное число
Помогите пожалуйста! 1. Проверить является ли данное число симметричным (Одинаково пишется слева.
Симметричное число
Помогите пожалуйста 1. Проверьте, является ли число симметричным (одинаково пишется слева направо.
print(('Нет', 'Да')[str(n := input()) == str(n)[::-1]])
num = int(input()) arr = [] while num: arr.append(num % 10) num //= 10 print(('Нет', 'Да')[arr == arr[::-1]])
Mikail7D6, это чисто арифметическая задача. Списки и строки применять здесь излишне!
def isPal(n): sn=n rn=0 while n>0: rn=rn*10+n%10 n=n//10 return sn==rn print("Да" if isPal(int(input("n="))) else "Нет")
Сообщение от Catstail
Сообщение от tigertv_ru
Сообщение от tigertv_ru
а смысл в том что данные могут приходить из функции и именно числом. вам же сказано что дано число а откуда оно дано не сказано но именно число а не строка поэтому
Сообщение от thyrex
очень хороший совет. это Catstail, получает данные с клавиатуры и поэтому переводит в тип int но при этом решение работает именно с числом а не строкой.
Сообщение от Semen-Semenich
def isPal(n): rn = 0 nn = n while nn > 0: nn, rmd = divmod(nn, 10) rn = rn * 10 + rmd return rn == n n = int(input("n=")) print("Да" if isPal(n) else "Нет")
def palindrome(number): revert_number = 0 copy_number = number while copy_number > 0: digit = copy_number % 10 revert_number = revert_number*10+digit copy_number = copy_number // 10 return number == revert_number
tigertv_ru, без конвертации можно ввести что угодно. Но даже не это главное. В условии сказано «дано. число», а не строка. Правильное решение этой задачи предполагает создание функции, которая принимает на вход число, а возвращает Truе/False.
Добавлено через 36 секунд
Whitecolor, от моего решения Ваше отличается именами переменных.
def is_pal(x): s = str(x) return s == s[::-1] print(is_pal(1221)) print(is_pal('1221'))
Сообщение от Parramon
— это тоже не сильно хорошо. Алгоритмически оно хуже (хотя записывается короче). str(x) «за кадром» выполняет многократное деление с остатком. Далее s[::-1] — это еще один цикл + дополнительная память. А s == s[::-1] — это снова цикл.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
import timeit def is_pal(x): s = str(x) return s == s[::-1] def is_pal2(x): s = f'' rev_s = s[::-1] return s == rev_s def isPal(n): sn=n rn=0 while n>0: rn=rn*10+n%10 n=n//10 return sn==rn print(timeit.timeit('is_pal("12345678900987654321")', number=1000000, setup="from __main__ import is_pal")) print(timeit.timeit('is_pal(12345678900987654321)', number=1000000, setup="from __main__ import is_pal")) print(timeit.timeit('is_pal2("12345678900987654321")', number=1000000, setup="from __main__ import is_pal2")) print(timeit.timeit('is_pal2(12345678900987654321)', number=1000000, setup="from __main__ import is_pal2")) print(timeit.timeit('isPal(12345678900987654321)', number=1000000, setup="from __main__ import isPal"))
0.10617850000000001 0.1061127 0.10494560000000003 0.106435 0.8734765
def palindrome(number): return sum(map(int, list(number[:]))) == sum(map(int, list(number[::-1]))) print('Да' if palindrome(input()) else 'Нет')
Parramon, и что? Я Вам — про алгоритмическую сложность. А реальная скорость зависит еще и от реализации. Встроенные функции Питона реализованы скорее всего на C, поэтому работают быстро.