Другие языки программирования и технологии

помогите с решение задачи на Турбо паскале

дано число n (n<=9999) , верно ли что это число содержит ровно три одинаковые цифры, как например числа 5545, 0006, 3733 и тд. ЗА правильный ответ 10 баллов, мне нужен программный код выручайте народ )))
d4 := n div 1000;
d3 := (n mod 1000) div 100;
d2 := (n mod 100) div 10;
d1 := n mod 10;
c := 0;
if d1 = d2 then Inc(c);
if d1 = d3 then Inc(c);
if d1 = d4 then Inc(c);
if d2 = d3 then Inc(c);
if d2 = d4 then Inc(c);
if d3 = d4 then Inc(c);
if c = 3 then WriteLn('true') else WriteLn('false');

Где-то так :)
ЗЫ: для чистоты лучше вначале сделать n := n mod 10000 чтоб стало <= 9999
ЯМ
Ярослав Мельничук
40 192
Лучший ответ
кол-во цифр всегда 4 или тоже проверять?
какие условия, жесткие?
program zadacha;
uses crt;
var s:string[4];
i:longint;
m,n:byte;
begin
clrscr;
readln(i);
str(i,s);
for m:=2 to 4 do begin
if(s[m]=s[m-1])then n:=n+1;
end;
if n=2 then writeln('true') else writeln('false');
readln;
end.
Malgalad, твоя программа считает количество одинаковых рядом стоящих цифр.. .

function f(n:Integer):boolean;
var i, j, a:integer;
s:string;
begin
str(n, s);
for i:=1 to Length(s)-2 do
begin
a:=1;
for j:=i+1 to Length(s) do
if s[ i]=s[j] then
inc(a);
if a=3 then
begin
f:=true;
exit;
end;
end;
f:=false;
end;

как-то так.. . не запускал
Дружище Malgalad, даже с первого взгляда можно сказать, что твоя прогрмма сравнивает только СОСЕДНИЕ цифры. На числе, допустим 5055, она даст отрицательный результат, хотя число 5055 подходит под условие.

Глянь как этот цикл сработает:
m = 2: 0 != 5 => n = 0
m = 3: 5 != 0 => n = 0
m = 4: 5 = 5 => n = 1