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