Требуется написать программу определяющую является ли четырехзначное

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

algorithms / 324. Четырехзначный палиндром

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
31 lines (23 sloc) 1.14 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Время: 1 сек. Память: 16 Мб Сложность: 10%)
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N палиндромом, т.е. числом, которое одинаково читается слева направо и справа налево.
Входные данные
Входной файл INPUT.TXT содержит натуральное число N (1000 ≤ N ≤ 9999).
Выходные данные
В выходной файл OUTPUT.TXT следует вывести слово «YES», если число N является палиндромом, или «NO» – если нет.
def main():
input_file = open(«input.txt», «r»)
output_file = open(«output.txt», «w»)
line = input_file.readline().split()
a1 = int(line[0])
a = []
while a1 > 0:
a.append(a1 % 10)
a1 = a1 // 10
print(a)
if a[0] == a[3] and a[1] == a[2]:
ans = «YES»
else:
ans = «NO»
output_file.write(str(ans) + «n»)
if __name__ == «__main__»:
main()
Читайте также:
Wi-Fi программа для настройки

Задача 324. Четырехзначный палиндром. acmp.ru C++

  • Copy lines
  • Copy permalink
  • View git blame
  • Reference in new issue

Источник: github.com

Четырехзначный палиндром — Pascal

Требуется написать программу, определяющую, является ли четырехзначное натуральное число N палиндромом, т.е. числом, которое одинаково читается слева направо и справа налево. Входной файл INPUT.TXT содержит натуральное число N (1000 ≤ N ≤ 9999). В выходной файл OUTPUT.TXT следует вывести слово «YES», если число N является палиндромом, или «NO» – если нет. Вот что пишу я (новичок, чайник, не всё до конца понимающий, почти «0»)

Решение 324 задачи acmp.ru.C++.Четырехзначный палиндром.


Var n, a,b,c,d: Integer; Begin Assign (input, ‘input.txt’); Reset (input); Assign (output, ‘output.txt’); Rewrite (output); Read (n); a:= n div 1000; b:= n div 100 mod 10; c:= n div 10 mod 10; d:= n mod 10; If (a=d and b=c) then write (‘YES’) else write (‘NO’); Close (input); Close (output); End.

Если честно с трудом понимаю как разбить 4-значное число на цифры. Поясните пожалуйста

Код к задаче: «Четырехзначный палиндром»

Листинг программы

Var S,ss : String; i : Byte; Begin Readln(ss); S:=»; For i:=1 to Length(SS) do If ss[i]<>’ ‘ then s:=s+ss[i]; For i:=1 to Length(S) div 2 do If Upcase(S[i])<>Upcase(S[Length(S)-i+1]) then Begin Writeln(‘Not Polyndrome!’); Break; End; If i>=Length(S) div 2 then Writeln(‘Its Polyndrome!’); End.

Источник: studassistent.ru

Проверить, является ли четырехзначное число палиндромом

Формулировка. Дано четырехзначное число. Проверить, является ли оно палиндромом. Примечание: палиндромом называется число, слово или текст, которые одинакового читаются слева направо и справа налево. Например, в нашем случае это числа 1441, 5555, 7117 и т. д.

Примеры других чисел-палиндромов произвольной десятичной разрядности, не относящиеся к решаемой задаче: 3, 787, 11, 91519 и т. д.

Читайте также:
Модульная программа это в педагогике

Решение. Для ввода числа с клавиатуры будем использовать переменную n. Вводимое число принадлежит множеству натуральных чисел и четырехзначно, поэтому оно заведомо больше 255, так что тип byte для ее описания нам не подходит. Тогда будем использовать тип word.

Какими же свойствами обладают числа-палиндромы? Из указанных примеров легко увидеть, что в силу своей одинаковой «читаемости» с двух сторон в них равны первый и последний разряд, второй и предпоследний и т. д. вплоть до середины. Причем если в числе нечетное количество разрядов, то серединную цифру можно не учитывать при проверке, так как при выполнении названного правила число является палиндромом вне зависимости от ее значения.

В нашей же задаче все даже несколько проще, так как на вход подается четырехзначное число. А это означает, что для решения задачи нам нужно лишь сравнить 1-ю цифру числа с 4-й и 2-ю цифру с 3-ей. Если выполняются оба эти равенства, то число – палиндром. Остается только получить соответствующие разряды числа в отдельных переменных, а затем, используя условный оператор, проверить выполнение обоих равенств с помощью булевского (логического) выражения.

Однако не стоит спешить с решением. Может быть, мы сможем упростить выведенную схему? Возьмем, например, уже упомянутое выше число 1441. Что будет, если разделить его на два числа двузначных числа, первое из которых будет содержать разряд тысяч и сотен исходного, а второе – разряд десятков и единиц исходного. Мы получим числа 14 и 41.

Теперь, если второе число заменить на его реверсную запись (это мы делали в задаче 5), то мы получим два равных числа 14 и 14! Это преобразование вполне очевидно, так в силу того, что палиндром читается одинаково в обоих направлениях, он состоит из дважды раза повторяющейся комбинации цифр, и одна из копий просто повернута задом-наперед.

Читайте также:
Что такое программа факс

Отсюда вывод: нужно разбить исходное число на два двузначных, одно из них реверсировать, а затем выполнить сравнение полученных чисел с помощью условного оператора if. Кстати, для получения реверсной записи второй половины числа нам необходимо завести еще две переменные для сохранения используемых разрядов. Обозначим их как a и b, и будут они типаbyte.

Теперь опишем сам алгоритм:

1) Вводим число n;

2) Присваиваем разряд единиц числа n переменной a, затем отбрасываем его. После присваиваем разряд десятковn переменной b и также отбрасываем его:

3) Присваиваем переменной a число, представляющее собой реверсную запись хранящейся в переменных a и bвторой части исходного числа n по уже известной формуле:

4) Теперь мы можем использовать проверку булевского выражения равенства полученных чисел n и a помощью оператора if и организовать вывод ответа с помощью ветвлений:

if n = a then writeln(‘Yes’) else writeln(‘No’);

Так как в условии задачи явно не сказано, в какой форме необходимо выводить ответ, мы будем считать логичным вывести его на интуитивно понятном пользователю уровне, доступном в средствах самого языкаPascal. Напомним, что с помощью оператора write (writeln) можно выводить результат выражения булевского типа, причем при истинности этого выражения будет выведено слово ‘TRUE’ («true» в пер. с англ. означает «истинный»), при ложности – слово ‘FALSE’ («false» в пер. с англ. означает «ложный»). Тогда предыдущая конструкция с if может быть заменена на

Код:

  1. program PalindromeNum;
  2. var
  3. n: word;
  4. a, b: byte;
  5. begin
  6. readln(n);
  7. a := n mod 10;
  8. n := n div 10;
  9. b := n mod 10;
  10. n := n div 10;
  11. a := 10 * a + b;
  12. writeln(n = a)
  13. end.

Источник: pascalzadachi.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru