Задачи на циклы. Определить, верно ли, что в записи целого числа есть две одинаковые цифры - 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=<>, то выводится сообщение о том, что все цифры встречаются по отдельности. В противном случае выводится сообщение о том, какие цифры повторяются. В конце программы выводится сообщение, запрашивающее ввод числа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы