Другие языки программирования и технологии
помогите с решение задачи на Турбо паскале
дано число 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
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
кол-во цифр всегда 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.
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;
как-то так.. . не запускал
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
Глянь как этот цикл сработает:
m = 2: 0 != 5 => n = 0
m = 3: 5 != 0 => n = 0
m = 4: 5 = 5 => n = 1
Похожие вопросы
- Помогите с решением задачи (в Лазарусе) Паскаль
- Помогите решить задачу на Турбо паскале
- помогите в решении задачи, программу надо написать в турбо паскале
- Напишите 5 задач по турбо Паскалю при решение которых нужна только переменная i . Помогите пожалуйста!
- Помогите написать 2 програмки на Турбо Паскале.
- Помогите решить задачу в турбо паскаль
- помогите решить задачу на турбо паскале
- Помогите пожалуйста найти ошибку в решении задачи по информатике(паскаль) !!!Прошу очень нужно!!!задача простая!!!
- даю 10 баллов за задачу в Турбо паскале
- решите плиз задачу на Турбо Паскале дам 10 баллов