Показать сообщение отдельно
  #5  
Старый 17.02.2010, 23:06
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

Вот код, объяснение через пару минут напишу.
Также выкладываю решение для всех чисел от 0 до 99.
Код:
program Project1;

const maxarray = 200;

var x,y,p:byte;
    a: array [1..maxarray] of byte;
    i:integer;
    isfind:integer;

begin
 assign(input, 'NUMGAME.IN');
 reset(input);
 assign(output, 'NUMGAME.OUT');
 rewrite(output);

 // read

 Readln(x);
 y := x mod 10;
 x := x div 10;

 // solve

 p := 0;
 a[1] := y;
 a[2] := x;

 isfind := 0;

 for i:=3 to maxarray do
  begin
   a[i] := a[i-2]*2 + p;
   p := a[i] div 10;
   a[i] := a[i] mod 10;
   if ((a[i]=x) and (a[i-1]=y) and (p=0)) then
    begin
     isfind := i-2;
     break;
    end;
  end;

 // output

 if (isfind > 1) then
  begin
   for i:=isfind downto 1 do
    Write(a[i]);
   Writeln('');
  end
 else
  begin
   Writeln('NO SOLUTION');
  end;

 close(input);
 close(output);
end.
Вложения
Тип файла: txt AllSolutions.txt (9.8 Кбайт, 4 просмотров)
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием