Вопрос:

Задача 5. Сажени, аршины, пяди, вершки. Древнерусская мера длины сажень состояла из трёх аршин. Один аршин делился на четыре пяди. Одна пядь состояла из 4 вершков. Купец привез на рынок рулон сукна длиной N вершков, но для уплаты пошлины ему нужно указать длину сукна в саженях, аршинах, пядях и вершках. Помогите ему – переведите длину сукна, записанного в вершках в сажени, аршины, пяди и вершки. Программа получает на вход одно натуральное число N, не превосходящее 2×10^9, — длину сукна в вершках. Программа должна вывести 4 целых неотрицательных числа S, A, P, V – количество саженей, аршин, пядей и вершков, в сумме дающих ровно N вершков, при этом значение A должно быть меньше 3 (т. к. 3 аршина дают одну сажень), значение P должно быть меньше 4 (четыре пяди дают один аршин), значение V должно быть меньше 4 (четыре вершка дают одну пядь). Пример входных и выходных данных: Ввод: 30 Вывод: 0 1 3 2 Примечание: 30 вершков это 0 саженей, 1 аршин, 3 пяди и 2 вершка.

Ответ:

Решение:

Для решения этой задачи нам нужно перевести общее количество вершков (N) в сажени (S), аршины (A), пяди (P) и вершки (V). Используем следующие соотношения:

  • 1 сажень = 3 аршина
  • 1 аршин = 4 пяди
  • 1 пядь = 4 вершка

Это означает:

  • 1 сажень = 3 аршина * 4 пяди/аршин = 12 пядей
  • 1 сажень = 12 пядей * 4 вершка/пядь = 48 вершков
  • 1 аршин = 4 пяди * 4 вершка/пядь = 16 вершков
  • 1 пядь = 4 вершка

Для перевода общего количества вершков N в сажени, аршины, пяди и вершки, будем использовать целочисленное деление и остатки, начиная с самой крупной единицы измерения.

  1. Перевод в сажени (S):
    • Количество саженей равно целому числу, сколько раз по 48 вершков помещается в N вершках.
    • \( S = N \div 48 \)
    • Остаток вершков: \( N_{\text{ост1}} = N \% 48 \)
  2. Перевод остатка в аршины (A):
    • Количество аршинов равно целому числу, сколько раз по 16 вершков помещается в остатке \( N_{\text{ост1}} \).
    • \( A = N_{\text{ост1}} \div 16 \)
    • Остаток вершков: \( N_{\text{ост2}} = N_{\text{ост1}} \% 16 \)
  3. Перевод остатка в пяди (P):
    • Количество пядей равно целому числу, сколько раз по 4 вершка помещается в остатке \( N_{\text{ост2}} \).
    • \( P = N_{\text{ост2}} \div 4 \)
    • Остаток вершков: \( V = N_{\text{ост2}} \% 4 \)
  4. Оставшиеся вершки (V):
    • Остаток от предыдущего деления является конечным количеством вершков.
    • \( V = N_{\text{ост2}} \% 4 \)

Проверка по примеру (N = 30):

  1. Сажени: \( S = 30 \div 48 = 0 \). Остаток: \( 30 \% 48 = 30 \).
  2. Аршины: \( A = 30 \div 16 = 1 \). Остаток: \( 30 \% 16 = 14 \).
  3. Пяди: \( P = 14 \div 4 = 3 \). Остаток: \( 14 \% 4 = 2 \).
  4. Вершки: \( V = 2 \).

Получили: S=0, A=1, P=3, V=2. Это совпадает с примером.

Алгоритм для программы:

1. Считать входное число N.

2. Вычислить S = N // 48 (целочисленное деление).

3. Вычислить остаток: N = N % 48.

4. Вычислить A = N // 16.

5. Вычислить остаток: N = N % 16.

6. Вычислить P = N // 4.

7. Вычислить остаток: V = N % 4.

8. Вывести S, A, P, V.