Цифровой 2018 - часть 2.

Previous Entry Поделиться Пожаловаться Next Entry
11 декабря, 2017
e_kaspersky
Новая порция математических задачек под постепенно надвигающийся 2018-й.

Вот такая: про ромашку и закрашивание лепестков.

Однажды русские госхакеры решили поздравить друг друга с Новым Годом и нарисовали огромную такую ромашку с 2018 лепестками. Этакая окружность, на которой нарисованы лепестки. Для пущей красоты они решили закрасить лепестки ромашки. А поскольку они всё-таки программисты, то сделали они это необычным способом. Сначала был покрашен некий произвольный лепесток. Затем хакеры отступили от него на один лепесток по часовой стрелке и закрасили и его тоже. Затем отступили в том же направлении на два лепестка от только что покрашенного (то есть, пропустили один лепесток), потом отступили на три, четыре, пять - и так до бесконечности. То есть, на каждом шаге количество пропущенных лепестков увеличивается на один. Если первым был закрашен нулевой лепесток, то следующий будет номер 1, затем +2 = 3, +3 = 6, +4 = 10, +5 = 15 и так далее по кругу и в бесконечном цикле.

Внимание, вопрос1: какое количество лепестков будет в результате закрашено?

Увидев такие дела, американские госхакеры тоже решили нарисовать свою ромашку. Но поскольку бюджеты у них побогаче будут, то и ромашка получилась поразвесистей. И было закрашено в ней по той же схеме ровно 2018 лепестков.

Вопрос2: сколько лепестков было в американской госхакерской ромашке?

Вопрос3: единственное ли это решение? Хотя еврейский Новый Год и отмечается в совершенно другое время, но израильские госхакеры решили не отставать от своих коллег и тоже нарисовали ромашку, у которой тоже закрашивается ровно 2018 лепестков. Но она отличается от американской. Возможно ли такое?

Поскольку предыдущие задачки про 2018 как-то не вызвали энтузиазма у читающей публики, попробую промотивировать ваши извилины ценными призами первым ответившим правильно и с обоснованиями. А призов у нас много и всяких разных.

Удачи.
Метки:
Previous Entry Поделиться Пожаловаться Next Entry

Записи из этого журнала по тегу «chtogdekogda»


Я не хотел думать и просто закодил, после чего обнаружил, что после 1010 номер не растет:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
    int i, j, n = 2018, w;
    unsigned long long m = 2000000000ULL;

    char * a = (char *) malloc (n + 1);

    for (i = 0; i < n; i ++)
        a [i] = '.';

    a [i] = '\0';

    for (i = 0, j = 0;
         m > 0;
         i = (i + ++ j) % n, m --)
    {
        a [i] = '*';
    }

    puts (a);

    for (i = 0, w = 0; i < n; i ++)
        if (a [i] == '*')
            w ++;

    printf ("%d\n", w);

    free (a);

    return 0;
}



Edited at 2017-12-11 21:47 (UTC)

Ну вот...
Все такие программисты, все сразу за компиляторы бросились. А что, если я бы вдруг эту задачку для другого числа задал, например, 68719476704 - что станете делать? (на самом деле решение именно для этого числа всего-то чуть сложнее, чем для 2018).

Вот сразу чувствуется - человек близок к путинскому руководству. Те тоже дают сложную задачу в расчёте, что народ не решит, а когда люди вдруг решили, власти начинают наворачивать: да надо было числа взять в тыщу раз больше... А кто мешал сразу задачу по-другому поставить? Нет уж, товарищ, имейте смелость признаться, что ваша задача решена, а не оправдываться, что программисты вас обули.

?

Log in

No account? Create an account