Предмет: Информатика,
автор: shelashevadasha
програма в паскаль
Ввести ціле число і визначити, чи правда, що в його записі є дві однакові цифри.
Приклад:
Ввести ціле число: Ввести ціле число:
1234 1224
Ні. Так.
Ответы
Автор ответа:
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.
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.
Автор ответа:
0
а можно как-то заменить b:boolean; m:set of 0..9; ? мы такое еще не проходили
Автор ответа:
0
А что проходили? Строки, массивы?
Автор ответа:
0
из типов в паскале только integer, real, и стандартные. такого не было
Автор ответа:
0
Очень странно, что не проходили boolean. Это стандартный тип (логический).
Похожие вопросы
Предмет: География,
автор: akerkeasemzhan
Предмет: Қазақ тiлi,
автор: mahanbetablai
Предмет: Литература,
автор: natanbasov
Предмет: Математика,
автор: kosenkokatya
Предмет: Информатика,
автор: алсу1984