Решите срочно, пожалуйста!!! ввести целое число и определить верно ли что в его записи...

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

Решите срочно, пожалуйста!!!
ввести целое число и определить верно ли что в его записи есть две одинаковые цифры
ПАСКАль


Информатика (23 баллов) | 27 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var x,y,z,f:integer;
begin
write('Введите число: ');
readln(x);
while x>0 do
   begin
   y:=x mod 10;
   z:=x div 10;
      while z>0 do
         begin
         if (z mod 10)=y then f:=1;
         z:=z div 10;
         end;
   x:=x div 10;
   end;
if f=1 then writeln('Верно, есть одинаковые цифры')
   else writeln('Нет одинаковых цифр')
end.

Если использовать строковые ф-ии, то программа будет проще:
var
  i,k,f:integer;
  s,t:string;
begin
write('Введите число: ');
readln(s);
k:=length(s);
for i:= 1 to k do
  begin
  t:=copy(s,i+1,k-i+1);
  if pos(s[i],t)>=1 then f:=1;
  end;
if f=1 then writeln('Верно, есть одинаковые цифры')
  else writeln('Нет одинаковых цифр')
end.

0 голосов

Program HardZadacha;
Var 1,2,3,4,5,6,7,8,9,0:array [0..5] of integer;
       a,i,x:integer;
begin
Writeln('Введите целое число :  ');
Read(a);
for i:=1 to 5 do
begin
if a mod 10 =0 then 0[i]:=0[i]+1;
if a mod 10 =1 then 1[i]:=1[i]+1;
if a mod 10 =2 then 2[i]:=2[i]+1;
if a mod 10 =3 then 3[i]:=3[i]+1;
if a mod 10 =4 then 4[i]:=4[i]+1;
if a mod 10 =5 then 5[i]:=5[i]+1;
if a mod 10 =6 then 6[i]:=6[i]+1;
if a mod 10 =7 then 7[i]:=7[i]+1;
if a mod 10 =8 then 8[i]:=8[i]+1;
if a mod 10 =9 then 9[i]:=9[i]+1;
a:=a mod 10;
end;


for i:=2 to 5 do
begin
if 0[i]+0[i-1]>1 then x:=1; 
if 1[i]+1[i-1]>1 then x:=1; 
if 2[i]+2[i-1]>1 then x:=1; 
if 3[i]+3[i-1]>1 then x:=1; 
if 4[i]+4[i-1]>1 then x:=1; 
if 5[i]+5[i-1]>1 then x:=1; 
if 6[i]+6[i-1]>1 then x:=1; 
if 7[i]+7[i-1]>1 then x:=1; 
if 8[i]+8[i-1]>1 then x:=1; 
if 9[i]+9[i-1]>1 then x:=1; 
end;
if x=1 then writeln('Есть повторяющие цифры') else writeln('Нет повторяющихся цифр');
end.

(148 баллов)
0

Чепуха какая-то