Вопрос:

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R: 1. Строится семеричная запись числа N. 2. Далее эта запись обрабатывается так: а) если число N делится на 7, к этой записи дописываются две последние семеричные цифры б) если число N на 7 не делится, остаток от деления умножается на 2, переводится в семеричную запись и дописывается в конец числа. Таким образом получается семеричная запись искомого числа R. 3. Результат переводится в десятичную систему и выводится на экран. Например, для исходного числа 6 = 67 результат число 6157 = 306, а для исходного числа 7 = 107 - число 10107 = 350. Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее 220.

Смотреть решения всех заданий с листа

Ответ:

Привет! Давай разберемся с этой задачей по информатике.

Суть задачи: Алгоритм берет число N, переводит его в семеричную систему, что-то с ним делает (в зависимости от делимости на 7) и получает новое число R. Нам нужно найти самое большое N, для которого R будет меньше 220.

Разберем алгоритм по шагам:

  1. Перевод N в семеричную систему: Это основа.
  2. Обработка семеричной записи:
    • Если N делится на 7: К семеричной записи N дописываются две последние цифры семеричной записи N.
    • Если N НЕ делится на 7: Находим остаток от деления N на 7, умножаем его на 2, переводим в семеричную систему и дописываем к семеричной записи N.
  3. Перевод R в десятичную систему: Это и есть результат.

Наша цель: Найти максимальное N, чтобы R < 220.

Проверим примеры:

  • N = 6:
    • 6 в семеричной системе = 6.
    • 6 не делится на 7. Остаток от деления 6 на 7 равен 6.
    • 6 * 2 = 12.
    • 12 в семеричной системе = 15 (1*7 + 5).
    • К семеричной записи 6 дописываем 15: получаем 615 (в семеричной).
    • 615_7 = 6 * 7^2 + 1 * 7^1 + 5 * 7^0 = 6 * 49 + 7 + 5 = 294 + 7 + 5 = 306. (Пример из условия немного отличается, возможно, там была опечатка или другое правило.)
  • N = 7:
    • 7 в семеричной системе = 10.
    • 7 делится на 7. Две последние цифры семеричной записи 7 (то есть 10) - это 1 и 0.
    • Дописываем 10 к 10: получаем 1010 (в семеричной).
    • 1010_7 = 1 * 7^3 + 0 * 7^2 + 1 * 7^1 + 0 * 7^0 = 343 + 0 + 7 + 0 = 350. (В условии есть ошибка, 1010_7 = 350, а не 306.)

Идем от обратного: ищем максимальное N, чтобы R < 220.

R в десятичной системе должно быть меньше 220. Это значит, что семеричная запись R будет иметь максимум 3 цифры (так как 7^3 = 343, что больше 220, а 7^2 = 49, 7^3 = 343, значит, 220 в семеричной системе это 313_7).

Рассмотрим два случая для числа R (в семеричной системе):

  1. Если N делилось на 7: R = (семеричная запись N) + (последние две цифры семеричной записи N).
  2. Если N НЕ делилось на 7: R = (семеричная запись N) + (семеричная запись (остаток от деления N на 7) * 2).

Случай 1: N делится на 7.

Пусть N = 7k. Семеричная запись N будет выглядеть как ...d1 d0. Тогда R будет ...d1 d0 d1 d0. Нам нужно, чтобы R < 220 (десятичное), что в семеричной системе примерно 313_7.

Попробуем подобрать N так, чтобы R было близко к 220. Если R = 313_7 (что равно 220 десятичным), то N должно было бы иметь семеричную запись 31_7 (что равно 22 десятичным). Но 22 делится на 7 с остатком 1. Значит, этот случай не подходит.

Давайте подберем R, которое может быть получено по этому правилу и будет меньше 220.

Если R = 155_7 (110 десятичное), то N в семеричной = 15_7 (12 десятичное). 12 делится на 7 с остатком 5. Не подходит.

Если R = 212_7 (148 десятичное), то N в семеричной = 21_7 (15 десятичное). 15 делится на 7 с остатком 1. Не подходит.

Если R = 222_7 (156 десятичное), то N в семеричной = 22_7 (16 десятичное). 16 делится на 7 с остатком 2. Не подходит.

Если R = 303_7 (206 десятичное), то N в семеричной = 30_7 (21 десятичное). 21 делится на 7. Последние две цифры 30. Дописываем 30: R = 3030_7. Это больше 220. Не подходит.

Случай 2: N НЕ делится на 7.

R = (семеричная запись N) + (семеричная запись (остаток от деления N на 7) * 2).

Мы хотим, чтобы R < 220 (десятичное), что примерно 313_7.

Пусть семеричная запись N будет X. Тогда R = X + Y, где Y - это преобразованный остаток.

Рассмотрим максимальное R, которое меньше 220. Например, R = 312_7 (219 десятичное).

Возможные варианты для Y (преобразованный остаток):

  • Остаток 0, *2 = 0, семеричная = 0. Y = 0. Тогда X = 312_7 (219 десятичное). 219 не делится на 7. Остаток от 219 / 7 = 2. 2 * 2 = 4. Семеричная запись 4. Y=4. X+Y = 219 + 4 = 223. Не подходит.
  • Остаток 1, *2 = 2, семеричная = 2. Y = 2. Тогда X = 310_7 (203 десятичное). 203 делится на 7. Не подходит.
  • Остаток 2, *2 = 4, семеричная = 4. Y = 4. Тогда X = 307_7 (200 десятичное). 200 не делится на 7. Остаток от 200 / 7 = 4. 4 * 2 = 8. Семеричная запись 11. Y=11_7. X+Y = 200 + 11_7 = 200 + 1*7 + 1 = 208.
  • Проверим N = 208:
    • 208 в семеричной: 208 / 7 = 29 ост 5. 29 / 7 = 4 ост 1. 4 / 7 = 0 ост 4. Семеричная запись 415_7.
    • 415_7 делится на 7? Нет. Остаток от 208 / 7 = 5.
    • 5 * 2 = 10. 10 в семеричной = 13_7.
    • R = 415_7 + 13_7 = 428_7.
    • 428_7 = 4*49 + 2*7 + 8 = 196 + 14 + 8 = 218.
    • R = 218. Это меньше 220!

Можем ли мы получить число N больше, которое тоже даст R < 220?

Попробуем получить R = 311_7 (218 десятичное).

Если R = 311_7 (218 десятичное):

  • Остаток 0, *2=0, Y=0. X = 311_7 (218). 218 не делится на 7. Остаток 5. 5*2=10. Y=13_7. X+Y = 218 + 13_7 = 218 + 10 = 228. Больше 220.
  • Остаток 1, *2=2, Y=2. X = 309_7 (216). 216 не делится на 7. Остаток 6. 6*2=12. Y=15_7. X+Y = 216 + 15_7 = 216 + 12 = 228. Больше 220.
  • Остаток 2, *2=4, Y=4. X = 307_7 (200). 200 не делится на 7. Остаток 4. 4*2=8. Y=11_7. X+Y = 200 + 11_7 = 208.
  • Остаток 3, *2=6, Y=6. X = 305_7 (200). 200 не делится на 7. Остаток 4. 4*2=8. Y=11_7. X+Y = 200 + 11_7 = 208.
  • Остаток 4, *2=8, Y=11_7. X = 300_7 (147). 147 делится на 7. Не подходит.
  • Остаток 5, *2=10, Y=13_7. X = 260_7 (133). 133 делится на 7. Не подходит.
  • Остаток 6, *2=12, Y=15_7. X = 250_7 (126). 126 делится на 7. Не подходит.

Похоже, N=208 — это наш кандидат.

Проверим числа больше 208, чтобы убедиться, что N=208 — максимальное.

Следующее возможное N, которое даст R < 220, будет таким, что семеричная запись N очень мала, а преобразованный остаток велик.

Если N = 209: 209 / 7 = 29 ост 6. Семеричная запись: 426_7. Остаток 6. 6 * 2 = 12. Семеричная 15_7. R = 426_7 + 15_7 = 443_7. 443_7 = 4*49 + 4*7 + 3 = 196 + 28 + 3 = 227. Больше 220.

Если N = 210: 210 / 7 = 30 ост 0. Семеричная запись: 430_7. Делится на 7. Последние две цифры: 30. R = 43030_7. Очень большое число.

Итак, максимальное N, при котором R < 220, равно 208.

Ответ: 208

ГДЗ по фото 📸
Подать жалобу Правообладателю