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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2014, 21:34   #1
Doctor_Program
 
Регистрация: 07.11.2014
Сообщений: 6
По умолчанию Олимпиадная задача для Delphi 7. Teruski.

Значит, столкнулся я с одной задачей на олимпиаде по информатике 2013 года. Называется задача Teruski. Текст такой:

"Был такой народ-теруски. Они, как и римляни, использовали при написании чисел семь буков: A E I J O U и Y. Им удавалось так обозначить только числа от 1 до 5040. Каждое число записывалось в виде строки, длиной в семь символов. Так, AEIJOUY=1, AEIJOYU=2, AEIJUOY=3, а YUOJIEA=5040.
Нужно составить программу, которая бы определяла, как теруски записывали данное число."

Но это не всё. Нужно помочь не составить решение, а помочь с его объяснением. Вот код:

Код:
const f:array[1..6] of integer = (1,2,6,24,120,720);
  var i,j,k,n:integer;
      s:string;
      c:char;
begin
  readln(n); dec(n);
  s:='AEIJOUY';
  for i:=1 to 6 do begin
    k:=n div f[7-i];
    if k>0 then begin
      c:=s[i+k];
      for j:=i+k-1 downto i do
        s[j+1]:=s[j];
      s[i]:=c;
    end;
    n:=n mod f[7-i];
  end;
  writeln(s);
end.
Объясните пожалуйста данное решение. Хотелось бы конкретное объяснение каждой строки. Тем более не понятен массив: f:array[1..6] of integer = (1,2,6,24,120,720); Откуда вообще эти цифры(1,2,6,24,120,720)?
Ответьте пожалуйста в краткие строки, ибо на носу очередная олимпиада. Заранее благодарен)
Doctor_Program вне форума Ответить с цитированием
Старый 09.11.2014, 22:02   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Откуда вообще эти цифры(1,2,6,24,120,720)?
Это факториалы чисел 1...6.
Цитата:
ибо на носу очередная олимпиада.
У вас, спортсменов-олимпийцев, там не принято, разве, дисквалифицировать за допинг?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.11.2014, 20:57   #3
Doctor_Program
 
Регистрация: 07.11.2014
Сообщений: 6
По умолчанию

Можно поподробнее про числа. Я, конечно, понимаю, что числа 1,2,6,24,120,720 имеют свой "номер", то бишь к ним можно обратиться, как к n-ному элементу массива. Мне не понятно- как их написали? Точнее, откуда??
Doctor_Program вне форума Ответить с цитированием
Старый 12.11.2014, 21:08   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Doctor_Program Посмотреть сообщение
Можно поподробнее про числа. Я, конечно, понимаю, что числа 1,2,6,24,120,720 имеют свой "номер", то бишь к ним можно обратиться, как к n-ному элементу массива. Мне не понятно- как их написали? Точнее, откуда??
Ты в каком классе учишься, школота?
Неужели не в курсе, что такое факториал?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.11.2014, 21:33   #5
Doctor_Program
 
Регистрация: 07.11.2014
Сообщений: 6
По умолчанию

Неужели класс настолько важен??? Если да, то в 11. Но вы учтите, что о таком языке, как Паскаль в нашей школе и не слышали. Поэтому учу я его сам уже два месяца как. И на олимпиады посылали, не обучая.

Если бы меня обучали и я тунеядствовал, то понятно, это не простительно не знать, судя по вашей интонации, такой простой термин, как факториал

Последний раз редактировалось Stilet; 12.11.2014 в 21:46.
Doctor_Program вне форума Ответить с цитированием
Старый 12.11.2014, 21:52   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Если бы меня обучали и я тунеядствовал, то понятно, это не простительно не знать, судя по вашей интонации, такой простой термин, как факториал
А факториал не относится к программированию - https://ru.wikipedia.org/wiki/%D0%A4...B8%D0%B0%D0%BB
Это чистая математика.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2014, 23:38   #7
Doctor_Program
 
Регистрация: 07.11.2014
Сообщений: 6
По умолчанию

Ну уж извините, что я нубяра и ничего не знаю. Я думал, мне тут задачу распишут, а не критиковать и позорить будут...Я ведь не виноват, что нас не учили такому...
Doctor_Program вне форума Ответить с цитированием
Старый 15.11.2014, 23:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кто ж тебе виноват если ты самостоятельно учиться не желаешь, ожидая советского образования? )
Сейчас в наше время если сам усилия не приложишь ничего никто не даст.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2014, 23:51   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Паскаль в нашей школе и не слышали.
Это ж на каком из дальних островов папуа-гвинеи находится твоя школа? Покажи на карте.

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 15.11.2014 в 23:53.
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Олимпиадная задача Beny Benassi Паскаль, Turbo Pascal, PascalABC.NET 18 11.11.2013 21:38
Олимпиадная задача 2 СергейАстрахань Помощь студентам 3 31.01.2013 16:46
Олимпиадная задача СергейАстрахань Помощь студентам 2 31.01.2013 11:48
Олимпиадная задача. masashama Общие вопросы C/C++ 19 27.10.2011 14:52
Олимпиадная задача. _-Re@l-_ Паскаль, Turbo Pascal, PascalABC.NET 1 09.12.2010 20:53