Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2014, 22:19   #61
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если Виталий не обгонит
Не обгоню. Не интересно за анорексией гоняться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2014, 22:24   #62
kostan3
- Дорогой, а ты ку
Форумчанин
 
Регистрация: 06.10.2012
Сообщений: 181
По умолчанию

Код:
var b,n: array[0..40] of Longint;
    x,m,i,j,k,f,g: Longint;
begin
  reset(input,'input.txt');
  read(x);
  Assign(Output,'output.txt');
  g:=1; b[0]:=1;
  while m<x do begin
    i:=i+1;
    b[i]:=f+g;
    f:=g;
    g:=b[i];
    m:=m+g;
    n[i]:=m-g+1
  end;
  for j:=i downto 1 do begin
    Write(x,' ');
    f:=0;
    x:=x-n[j]+1;
    while x>0 do
      for k:=j downto 1 do
        if x>=b[k] then begin
          f:=f+b[k-1];
          x:=x-b[k];
          Break
        end;
    x:=n[j-1]+f-1;
  end
end.
Размер кода: 343
kostan3 вне форума Ответить с цитированием
Старый 12.04.2014, 22:27   #63
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Все циклы махни на repeat..
сделай ти Int64
В 3-ей строке с конца убери ;
Poma][a вне форума Ответить с цитированием
Старый 12.04.2014, 22:30   #64
kostan3
- Дорогой, а ты ку
Форумчанин
 
Регистрация: 06.10.2012
Сообщений: 181
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ромаха с него 300 как минимум сделает
был бы код на с++ я бы до 280 сжал
kostan3 вне форума Ответить с цитированием
Старый 12.04.2014, 22:34   #65
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

дык подправь чуть-чуть код из #43
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.04.2014, 22:36   #66
kostan3
- Дорогой, а ты ку
Форумчанин
 
Регистрация: 06.10.2012
Сообщений: 181
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Все циклы махни на repeat..
сделай ти Int64
В 3-ей строке с конца убери ;
Int64 не работает
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation

task.pas(16) Error: For loop control variable must have ordinal type

task.pas(21) Error: For loop control variable must have ordinal type

task.pas(21) Error: Assignment to FOR-Loop variable ''


Код:
repeat
я не пользуюсь (не умею)
Код:
var b,n: array[0..40] of Longint;
    x,m,i,j,k,f,g: Longint;
begin
  reset(input,'input.txt');
  read(x);
  Assign(Output,'output.txt');
  g:=1; b[0]:=1;
  while m<x do begin
    i:=i+1;
    b[i]:=f+g;
    f:=g;
    g:=b[i];
    m:=m+g;
    n[i]:=m-g+1
  end;
  for j:=i downto 1 do begin
    Write(x,' ');
    f:=0;
    x:=x-n[j]+1;
    while x>0 do
      for k:=j downto 1 do
        if x>=b[k] then begin
          f:=f+b[k-1];
          x:=x-b[k];
          Break
        end;
    x:=n[j-1]+f-1;
  end
end.
Размер кода: 342
kostan3 вне форума Ответить с цитированием
Старый 12.04.2014, 22:41   #67
kostan3
- Дорогой, а ты ку
Форумчанин
 
Регистрация: 06.10.2012
Сообщений: 181
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
дык подправь чуть-чуть код из #43
как? у меня идей нет
kostan3 вне форума Ответить с цитированием
Старый 13.04.2014, 03:20   #68
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
как? у меня идей нет
Значит бросай программирование )
rrrFer вне форума Ответить с цитированием
Старый 13.04.2014, 15:33   #69
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Такушки..
Изначально хотелось завернуть все в рекурсию.. выходило как-то уж слишком много..
Потом получилось копия кода Аватара(только переменные были другими )
Посему я решил побаловаться этим кодом..

Код:
var b,n: array[0..40] of Int64;
    x,m,i,j,k,f,g: Int64;
begin
  reset(input,'input.txt');
  read(x);
  rewrite(output,'output.txt');
  g:=1; b[0]:=1;
  repeat
    i := i+1;
    b[i]:=f+g;
    f:=g;
    g:=b[i];
    n[i] := m+1;
    m := m+g
  until m >= x;
  repeat
    Write(x,' ');
    f:=0;
    Dec(x,n[i]-1);
    repeat
     
      k := i;
      while (k > 0) xor (x >= b[k]) do Dec(k);
      f := f + b[k-1];
      x := x - b[k]
    until x <= 0;
       
    x:=n[i-1]+f-1;
    Dec(i)
  until 0 = i
end.
331..
Кто скажет, где лишний 31 символ?
Poma][a вне форума Ответить с цитированием
Старый 13.04.2014, 15:37   #70
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Dec(x,n[i]-1);
x:=x-n[i]-1;
Не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц