Девять задач с AtCoder — одной из двух крупнейших систем проверки задач по спортивному программированию. Решения отправляются на самом AtCoder, а задачи идут в порядке этой недели: сначала циклы и накопители (сумма FizzBuzz, вклад, который растёт на 1%, точки в пределах расстояния, напитки, пока кто-то не опьянеет), потом цифры (бо́льшая сумма цифр, число, которое делится на свою сумму цифр, следующее число из одинаковых цифр, число, которое всё время меняется, числа, записанные в другой системе счисления).
Условия на английском (и японском). Каждой задаче хватает одного цикла — а
нескольким нужен long long.
- FizzBuzz Sum: сложите числа от 1 до
N, которые не делятся ни на 3, ни на 5. ПриNдо 10⁶ сумма больше 2 · 10⁹: нуженlong long. - 1%: каждый год прибавляйте
balance / 100— целочисленное деление само «отбрасывает доли иены» — и считайте годы цикломwhile. - Distance: сравнивайте
x * x + y * yсD * Dвlong long— вообще без корня, так что округление ничего не испортит. - Alcoholic: храните алкоголь как
V · P(в сотых долях миллилитра), чтобы всё оставалось целым, и остановитесь на первом напитке, после которого сумма превыситX · 100. - Large Digits и Digit Sums: цикл суммы цифр из урока. В Digit Sums
отщипывайте цифры от копии —
Nпонадобится для деления в конце. - AtCoder Beginner Contest 111: пробуйте 111, 222, …, 999 по порядку и
остановитесь на первом, которое не меньше
N. - 200th ABC-200: делайте ровно то, что сказано,
Kраз. Приписать200кN— этоN * 1000 + 200, и для этого нуженlong long. - Base K: цифры
Aзаписаны как обычное число. Отщипывайте их через% 10и умножайте каждую на её разряд — 1,K,K², … — который хранится в переменной и каждый круг умножается наK.