Страница 1 из 1
Решите плиз задачку .. в долгу не останусь.. только сегодня надо...
Добавлено: 12 дек 2007, 08:45
enotys
Задача вроде легкая но допереть не могу...
Вывести на экран в возрастающем порядке все четырехзначные натуральные числа, все цифры которых являются соседями в натуральном ряде. Примерами таких чисел являются 4756 и 7645. Найти кол-во и среднее арифметическое этих чисел..
Заранее спасибо... у меня сроки до завтра .. так что если у кого решение есть выложите пожалуйста... 50 кину на счет кто сегодня выложит решение...
Re: Решите плиз задачку .. в долгу не останусь.. только сегодня надо...
Добавлено: 12 дек 2007, 08:47
enotys
на Паскале...
Re: Решите плиз задачку .. в долгу не останусь.. только сегодня надо...
Добавлено: 12 дек 2007, 10:57
Хыиуду
Код: Выделить всё
function iskomoe(x:integer):boolean;
var res:boolean; i,j:byte; s:string;
begin
s:=str(x);
for i:=1 to 6 do
begin
res:=true
for j:=i to i+3 do
if pos(chr(ord('0')+j, s)=0 then
begin
res:=false;
break;
end;
if res then
begin
iskomoe:=true;
exit;
end;
end;
iskomoe:=false;
end;
Re: Решите плиз задачку .. в долгу не останусь.. только сегодня надо...
Добавлено: 12 дек 2007, 13:41
BBB
Хыиуду,
Функция вернет FALSE на первой же итерации цикла, если число не содержит цифру 1.
Re: Решите плиз задачку .. в долгу не останусь.. только сегодня надо...
Добавлено: 12 дек 2007, 15:40
somewhere
Код: Выделить всё
uses crt;
var
X : Integer;
function func1(N:Integer):Boolean;
var s: string;
i: Integer;
c: Char;
begin
Str(N, S);
func1 := false;
if length(s) <> 4 then exit;
repeat
c := #0;
for i := 1 to 3 do
if s[i+1] < s[i] then
begin
c := s[i];
s[i] := s[i+1];
s[i+1] := c;
end;
until c=#0;
Func1 := (ord(s[2])-ord(s[1])=1) and (ord(s[3])-ord(s[2])=1) and (ord(s[4])-ord(s[3])=1);
end;
begin
ClrScr;
For X := 1000 to 9999 do
if func1(X) then Write(X:8);
Readkey;
end.
Функция Func1 определяет, удовлетворяет ли число заданному признаку или нет. Кол-во и среднее арифметическое, думаю и сами сможете, если подумаете
Re: Решите плиз задачку .. в долгу не останусь.. только сегодня надо...
Добавлено: 12 дек 2007, 18:02
enotys
Спасибо огромное... Среднее арифметическое и кол-во я и сам найду..
Re: Решите плиз задачку .. в долгу не останусь.. только сегодня надо...
Добавлено: 13 дек 2007, 11:11
Хыиуду
BBB писал(а):Хыиуду,
Функция вернет FALSE на первой же итерации цикла, если число не содержит цифру 1.
Спасибо, исправил. Там надо было ставить не break, а exit