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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2010, 15:07   #1
imort
Новичок
Джуниор
 
Регистрация: 24.12.2010
Сообщений: 1
По умолчанию Есть задачи с олимпиады

Решите уважаемые программисты олимпиадные задачи. Заранее спасибо
Изображения
Тип файла: jpg DSC07661.jpg (89.8 Кб, 190 просмотров)
Тип файла: jpg DSC07662.jpg (110.0 Кб, 174 просмотров)
imort вне форума Ответить с цитированием
Старый 24.12.2010, 15:35   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

ICQ: 421277094
Недорого, сделаю сегодня.
eoln вне форума Ответить с цитированием
Старый 24.12.2010, 16:33   #3
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

1) Вроде так надо
Код:
uses crt;
var a,b,c,d,V,aV:integer;
BEGIN
readln(d);
readln(a);
readln(b);
readln(c);
V:=A*B*C;
aV:=d*d*d;
Writeln('Кубов может быть - ',V div aV );
END.
2 хотя бы перевернули
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)

Последний раз редактировалось DRAgon™; 24.12.2010 в 16:37.
DRAgon™ вне форума Ответить с цитированием
Старый 24.12.2010, 17:16   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от DRAgon™ Посмотреть сообщение
1) Вроде так надо
Код:
...
V:=A*B*C;
aV:=d*d*d;
Writeln('Кубов может быть - ',V div aV );
END.
Неа DRAgon™, пусть вход 2 3 3 3
Тогда выдаст ответ 3, хотя на самом деле поместится 1 кубик. Надо по отдельности ширину, длину и высоту высчитывать.
eoln вне форума Ответить с цитированием
Старый 24.12.2010, 17:28   #5
NioTo
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 32
По умолчанию

Задача A "Кубы":
Код:
var
  A, B, C, D: Integer;

begin
  ReadLn(D, A, B, C);
  WriteLn((A div D) * (B div D) * (C div D));
end.
NioTo вне форума Ответить с цитированием
Старый 24.12.2010, 18:49   #6
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Неа DRAgon™, пусть вход 2 3 3 3
Тогда выдаст ответ 3, хотя на самом деле поместится 1 кубик. Надо по отдельности ширину, длину и высоту высчитывать.
Ну хотя да ,вот тока хотел исправить себя,не успел
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 24.12.2010, 18:50   #7
NioTo
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 32
По умолчанию

Задача B:
Код:
var
  F: Text;
  n, Sum, i, CurNum, Digit: Integer;
  ArmstrongNumbers: Array[1..5] of Integer;
  CurArmNum: Integer = 5;

function Pow(Number, Power: Integer): Integer;
var
  i: Integer;
begin
  Pow := 1;
  for i := 1 to Power do
    Pow := Pow * Number;
end;

begin
  Assign(F, 'input.txt');
  Reset(F);
  ReadLn(F, n);
  Close(F);

  for i := Pow(10, n) - 1 downto 1 do begin
    CurNum := i;
    Sum := 0;

    if i < Pow(10, n - 1) then
      Dec(n);

    while CurNum <> 0 do begin
      Digit := CurNum mod 10;
      Sum := Sum + Pow(Digit, n);
      CurNum := CurNum div 10;
    end;

    if Sum = i then begin
      ArmstrongNumbers[CurArmNum] := Sum;
      Dec(CurArmNum);
    end;
  end;

  Assign(F, 'output.txt');
  Rewrite(F);
  for i := 1 to 4 do
    Write(F, ArmstrongNumbers[i], ' ');
  Write(F, ArmstrongNumbers[5]);
  Close(F);
end.
NioTo вне форума Ответить с цитированием
Старый 24.12.2010, 18:52   #8
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

NioTo , а вам просто так не лень делать?
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 24.12.2010, 19:49   #9
NioTo
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 32
По умолчанию

Задача C:
Код:
var
  F: Text;
  n, i, j: Integer;
  c: Integer = -1;
  Num: Integer = 1;
  Arr: Array of Array of Integer;

begin
  Assign(F, 'input.txt');
  Reset(F);
  ReadLn(F, n);
  Close(F);

  SetLength(Arr, n);
  for i := 0 to n - 1 do
    SetLength(Arr[i], n);

  repeat
    Inc(c);
    for i := c to n - c - 1 do begin
      Arr[c][i] := Num;
      Inc(Num);
    end;
    for i := c + 1 to n - c - 1 do begin
      Arr[i][n - c - 1] := Num;
      Inc(Num);
    end;
    for i := n - c - 2 downto c do begin
      Arr[n - c - 1][i] := Num;
      Inc(Num);
    end;
    for i := n - c - 2 downto c + 1 do begin
      Arr[i][c] := Num;
      Inc(Num);
    end;
  until n div 2 = c;

  Assign(F, 'output.txt');
  Rewrite(F);
  for i := 0 to n - 1 do begin
    for j := 0 to n - 2 do
      Write(F, Arr[i, j], ' ');
    WriteLn(F, Arr[i, n - 1]);
  end;
  Close(F);
end.
DRAgon™, ну мне интересно решать подобные задачи. Было бы не интересно не решал бы и за деньги.

P. S. На седня хватит думаю, спать пора, а завтра на смену, т. ч. только до вечера послезавтра, если надо будет.

Последний раз редактировалось NioTo; 24.12.2010 в 19:56.
NioTo вне форума Ответить с цитированием
Старый 24.12.2010, 20:42   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Задача D
Код:
var i,j,q,w:integer;
Begin
  Read (q,w);
  For i:=q-2 to q+2 do
    For j:=w-2 to w+2 do
      If ((abs(q-i)=1) and (abs(w-j)=2)) or
         ((abs(q-i)=2) and (abs(w-j)=1)) and
         ((q>=1) and (q<=8)) and ((w>=1) and (w<=8)) then
           If ((i>0) and (j>0)) and ((i<=8) and (j<=8)) then Begin
                                     Writeln (i,' ',j);
                                   End;
End.
задача Е
Код:
var
f:textfile;
i:integer;
i1,i2:integer;
n:integer;
a:array[1..20] of integer;
begin
assign(f,'input.txt');
reset (f);
readln(f,n);
i1:=0;
i2:=1;
for i:=1 to n do
begin
read(a[i]);
if not odd(i) then i1:=i1+a[i]
else if a[i]>a[i2] then i2:=i;
end;
close(f);
assign(f,'output.txt');
rewrite (f);
write(f,i1,' ',a[i2]);
close(f);
end.
Задача F
Код:
var
f:textfile;
i:integer;
n:integer;
i1:longint;
function fact(k:integer):longint;
var j:integer;
f1:longint;
begin
  f1:=1;
  for j:=2 to k do
   f1:=f1*j;
  fact:=f1;
end
begin
assign(f,'input.txt');
reset (f);
readln(f,n);
i1:=0;
for i:=1 to n do
i1:=i1+fact(i);
close(f);
assign(f,'output.txt');
rewrite (f);
write(f,i1);
close(f);
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 24.12.2010 в 20:54.
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Олимпиады ZvEr_HaCkEr Свободное общение 32 29.10.2010 17:29
Олимпиады, лекции ЛКШ (видео), задачи с решениями, книги и алгоритмы по программированию Abzal Свободное общение 0 30.08.2009 12:35
Помогите решить задачи(есть ошибки в решинии) denisok Помощь студентам 2 30.11.2008 20:12
Задача с олимпиады Xardas Помощь студентам 4 29.02.2008 19:00
Задача с олимпиады Xardas Помощь студентам 5 27.02.2008 23:38