Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2011, 21:44   #1
Wladimir33
 
Регистрация: 25.06.2011
Сообщений: 9
По умолчанию Задача про 3 числа

Ребята мне на зачёте дали задачу.
Дано натуральное число n. Проверить, есть ли в этом числе 3 совпадающего числа. (n<=9999).
Например 9989-есть 3 совпадающего числа.

Разясните пж как можно её сделать или помогите её написать.
Wladimir33 вне форума Ответить с цитированием
Старый 25.06.2011, 21:55   #2
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

Можешь преобразовать число в string функцией inttostr, а затем по одному символу проверяешь. Также можешь создать массив символов и сравнивать их. При положительном результате сравнения счётчик (например k) увеличивается на 1. Ну и в конце всех действий проверяешь, если k>=3 тогда есть повторяющиеся символы!
Пример:
Код:
function getcount(num:integer):boolean;
var
k:integer;
begin
If Length(inttostr(num))<3 then
Result:=False
else
begin
If length(inttostr(num))=3 then
begin
If (inttostr(num)[1]=inttostr(num)[2]) and (inttostr(num)[2]=inttostr(num)[3]) then
Result:=True;
end
else
begin
k:=0;
If (inttostr(num)[1]=inttostr(num)[2]) or (inttostr(num)[1]=inttostr(num)[3]) or (inttostr(num)[1]=inttostr(num)[4])  then
inc(k);
If (inttostr(num)[2]=inttostr(num)[1]) or (inttostr(num)[2]=inttostr(num)[3]) or (inttostr(num)[2]=inttostr(num)[4])  then
inc(k);
If (inttostr(num)[3]=inttostr(num)[1]) or (inttostr(num)[3]=inttostr(num)[2]) or (inttostr(num)[3]=inttostr(num)[4])  then
inc(k);
If (inttostr(num)[4]=inttostr(num)[1]) or (inttostr(num)[4]=inttostr(num)[2]) or (inttostr(num)[4]=inttostr(num)[3])  then
inc(k);
If k>=3 then
Result:=True
else
Result:=False;
end;
end;
end;
БЯЯЯГГАААААА

Последний раз редактировалось Leo08; 25.06.2011 в 22:06.
Leo08 вне форума Ответить с цитированием
Старый 25.06.2011, 22:01   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как-то так можно искать цифры в числе.
Код:
while (n>0) do
begin
   x:=n mod 10; 
   n:=n div 10;
end;
Ну только вместо х в данном случае массив [1..4] , например.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.06.2011, 23:39   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Или как то так:
Код:
var n, i, m : integer;
    mn : array[0..9] of byte;
    s1 : string;
begin
   readln(s1);                       { читаем строку символов}
   m := Length(s1);               {число цифр введено}
   for i:=1 to m do begin         { каждый символ}
      n := Ord(s1[i]) - Ord('0'); {преобразуем в число}
      if ( n >= 0) and (n <= 9) then {это число}
         inc(mn[n])     {подсчитываем сколько раз встретилась цифра}
      else begin                            {это не число}
         writeln('Это не число целого типа!');
         halt;
      end;
   end;
   for i := 0 to 9 do {просмотр встретившихся цифр}
      if mn[i] = 3 then begin
         writeln('В числе ', s1, 'три раза встречается цифра - ', i);
         break; {только для первой тройки одинаковых цифр}
      end;
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Как-то так, ...

Последний раз редактировалось Serge_Bliznykov; 26.06.2011 в 11:06.
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача Delphi про простые числа Crysta Помощь студентам 0 07.12.2010 19:50
Про сверхдлинные числа luchok Фриланс 8 29.05.2009 16:30
Про сверхдлинные числа luchok Фриланс 9 28.05.2009 13:37
[Pascal] Задача про натуральные числа Knife Помощь студентам 1 22.04.2009 02:04
Про числа Акашаев Нурлан Паскаль, Turbo Pascal, PascalABC.NET 6 12.12.2007 07:18