Страница 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