Олимпиада по информатике для студентов 2 курса



Олимпиада по информатике для студентов 2 курса с решением и ответами

  • Олимпиадные задания по информатике для студентов 2 курса


    Задание 1.

    Задано натуральное число n.
    Найти такое минимальное натуральное k, что число 3k содержит не менее n подряд идущих нулей в десятичной записи.
    Например, для n = 1 ответом будет k = 10, так как 310 = 59049 и это первая из степеней тройки, которая содержит один ноль.
    Для n = 2 ответом будет k = 35, так как 335 = 50031545098999707 и это первое из степеней тройки, содержащих два нуля.

    Задание 2.

    Посчитайте число способов замостить шахматную доску
    размером m × n доминошками размером 1 × 2, причём так,
    чтобы костяшки домино не накладывались друг на друга,
    не вылезали за края доски и полностью покрывали доску.
    Например, если n = m = 2, то существует всего два способа
    (обе доминошки вертикально или обе горизонтально).

    Мысленно «свернём» нашу доску в цилиндр, соединив левую и правую границы.
    В этом случае любое покрытие можно представить следующим образом:
    если доминошка вылезает за левый край, то вторая её половинка появляется справа, и наоборот.
    Требуется посчитать число замощений такого квадратного шахматного цилиндра размером 2n × 2n.
    Для n = 1 ответ будет 5, а для n = 2, ответ 121... .

    Задание 3 по информатике для студентов 2 курса.


    Задана квадратная решётка размером n × n.
    В ней можно обнаружить простые циклы длиной 4, 6, 8, и т. д. до самой большой возможной длины.
    (Простой цикл – это цикл, который не имеет самопересечений).
    Например, на решётке размером 2 × 2 есть один цикл длиной 4.
    На решётке размером 3 × 3 есть 4 цикла длиной 4, 4 цикла длиной 6 и 5 циклов длиной 8,
    то есть ответом будет последовательность (4, 4, 5).
    На решётке 4 × 4 ответом будет последовательность (9, 12, 26, 52, 76, 32, 6) (длины от 4 до 16).
    Требуется назвать ответы для n = 5, 6, ...

    Задание 4.

    Структура простого предложения имеет вид: подлежащее, сказуемое, (дополнение) (обстоятельство).
    Члены в круглых скобках могут отсутствовать.
    Сформулировать правила составления простого предложения и предложить алгоритм,
    генерирующий по ним все простые предложения из заданного вами словаря.
    Словарь состоит из четырех групп слов:
    существительные, прилагательные, глаголы, наречия.

    Задание 5.

    Написать программу определения количества билетов с 2N - значными номерами,
    у которых сумма первых N десятичных цифр равна сумме последних десятичных цифр;
    N — произвольное натуральное число.
    Программа должна вывести на экран последовательность искомых количеств для N = 1, 2, ....
    При оценке программы учитывается количество выведенных чисел.

    Задание по информатике для студентов 2 курса

    Дана строка, состоящая из символов,
    каждый из которых является знаком «+» или цифрой, начинающаяся и заканчивающаяся цифрой.
    Если в строке встречается сочетание «++», то выдать сообщение об ошибке, в противном случае вычислить получившуюся сумму.

    Решение задачи по информатике для студентов 2 курса на Паскале

    Эта задача рассчитана больше на знание языка программирования, чем на сообразительность.
    Для решения задачи можно использовать функцию "ORD",
    которая позволяет получить порядковый номер любого символа согласно таблице ASCII - кодов.
    Например, номер символа '0' - 48, а номер символа '1' - 49.
    Чтобы получить искомую цифру, необходимо отнять от номера символа 48.

    1. Во входной строке нет пробелов!
    2. Функция ORD будет работать в Turbo Pascal , но не будет работать в Pascal ABC .
    3. Pascal ABS поддерживает синтаксис Delphi ,
    поэтому необходимо заменить строку "r es:= res + ( ord (s[i])- 48); " на "r es:= res + StrToInt (s[i]) ;

     const  
      s = '2 + 6+ 8 + 9 + 1 + 5';
     var 
      i,res: integer;
     begin
        res:=0; 
       for  i := 1  to  length(s) - 1  do 
         if  (s[i] = '+')  and  (s[i+1]= '+' )  then
           begin
                       write    ('Error'); 
            exit;
            end;  
       for  i := 1  to  length(s)  do 
         if  s[i] <> '+'  then  
          res := res + ( ord (s[i]) - 48);
      write(res) ; 
      end.

    Олимпиадные задания по информатике для студентов 2 курса



^