Програма в паскаль Ввести ціле число і визначити, чи правда, що в його записі є дві...

0 голосов
32 просмотров

Програма в паскаль
Ввести ціле число і визначити, чи правда, що в його записі є дві однакові цифри.
Приклад:
Ввести ціле число: Ввести ціле число:
1234 1224
Ні. Так.


Информатика (17 баллов) | 32 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Есть много разных способов решения этой задачи. Например:
var n:integer; b:boolean; m:set of 0..9;
begin
write('n='); readln(n);
m:=[];
b:=false;
while (n>0) and not b do
 if n mod 10 in m then b:=true else begin m:=m+[n mod 10]; n:=n div 10; end;
if b then writeln('Да') else writeln('Нет');
end.

Пример:
n=123432
Да

Вот ещё вариант:
var n,m,n1,m1,b:integer;
begin
write('n='); readln(n);
b:=0;
while n>0 do
 begin
 m:=n mod 10;
 n:=n div 10;
 n1:=n;
 while n1>0 do
   begin
    m1:=n1 mod 10;
    if m=m1 then b:=1;
    n1:=n1 div 10;
    end;
 end;
if b=1 then writeln('Да') else writeln('Нет');
end.

(194k баллов)
0

а можно как-то заменить b:boolean; m:set of 0..9; ? мы такое еще не проходили

0

А что проходили? Строки, массивы?

0

из типов в паскале только integer, real, и стандартные. такого не было

0

Очень странно, что не проходили boolean. Это стандартный тип (логический).