Задачи на циклы. Определить, верно ли, что в записи целого числа есть две одинаковые цифры - Turbo Pascal
Формулировка задачи:
Ребята и девчата! Помогите с этими двумя задачами. Хотя бы не решением, подскажите, кто может научите решать подобные! Знаю что первую через for или while, а вторую через repeat. Вот только как именно не могу сообразить =(
1) Ввести целое число и определить верно ли, что в его записи есть две одинаковые цифры.
2) Ввести натуральное число и определить, какие цифры встречаются несколько раз.
Решение задачи: «Задачи на циклы. Определить, верно ли, что в записи целого числа есть две одинаковые цифры»
textual
Листинг программы
uses crt; var n:longint; i:byte; m1,m2:set of byte; begin clrscr; repeat write('Введите натуральное число n='); readln(n); until n>0; m1:=[]; m2:=[]; while n>0 do begin if n mod 10 in m1 then m2:=m2+[n mod 10] else m1:=m1+[n mod 10]; n:=n div 10; end; if m2=[] then write('Все цифры по 1 разу') else begin writeln('Повторяются:'); for i:=0 to 9 do if i in m2 then write(i,' '); end; readln end.
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он решает задачу, связанную с проверкой наличия двух одинаковых цифр в заданном числе. Переменные в коде имеют следующие названия и значения:
- n: длинное целое число, вводимое пользователем;
- i: байтовое значение, используется для организации цикла;
- m1, m2: множества (set), которые будут содержать цифры числа;
- m1, m2: пустые множества, которые будут заполняться цифрами числа;
- n: десятичное число, введенное пользователем;
- m1, m2: множества, которые будут содержать цифры числа;
- m1, m2: пустые множества, которые будут заполняться цифрами числа. В цикле while n>0 происходит следующее:
- Если число, которое осталось в n, делится на 10 без остатка, то это число добавляется в m2, а n делится на 10.
- Если число не делится на 10 без остатка, то оно добавляется в m1, а n увеличивается на 1.
- Цикл продолжается до тех пор, пока n не станет равным 0. После этого выводится сообщение о том, есть ли повторяющиеся цифры в числе. Если m2=<>, то выводится сообщение о том, что все цифры встречаются по отдельности. В противном случае выводится сообщение о том, какие цифры повторяются. В конце программы выводится сообщение, запрашивающее ввод числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д