Ниже на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 11.
var x, a, b: integer;
begin
readln(x);
a := 0; b := 1;
while x > 0 do
begin
a := a+1;
b := b*(x mod 1000);
x := x div 1000;
end;
writeln(a); write(b);
end.
Школы
Почему ответ 1011, а не 1001, ведь (x mod 1000) равен 11
Рахим.
Ключевым понятием данной задачи является группа из трёх цифр, стоящих вместе, — триада цифр.
Запись введённого числа x можно разделить на триады цифр. Группирование производится справа налево (от младших цифр к старшим). Если количество цифр в записи числа не кратно трём, это нормально.
• Переменная a — счётчик триад в записи числа x.
• Операция x mod 1000 определяет значение самой младшей триады в числе x.
Таким образом строка b := b*(x mod 1000); умножает значение b на значение младшей триады.
• Строка x := x div 1000; фактически отсекает от записи числа x младшую триаду.
• Цикличность выполнения строк
b := b*(x mod 1000);
x := x div 1000;
формирует в переменной b произведение значений всех триад из записи числа x, включая неполную триаду (самую старшую).
Таким образом, если a = 2, b = 11, то в записи введённого числа ровно 2 триады, а произведение их значений равно 11.
✓✓✓ ВАЖНОЕ ЗАМЕЧАНИЕ!!! Число 11 является простым, то есть оно делится исключительно на 1 и на 11.
Из этого следует, что существует только 2 числа, записи которых удовлетворяют условиям задачи: 1011 и 11001.
Каждое из этих чисел делится на 2 триады цифр, причём старшая триада — неполная.
⟨1011⟩ <==> ⟨001⟩ + ⟨011⟩
⟨11001⟩ <==> ⟨011⟩ + ⟨001⟩
Меньшее из этих чисел есть 1011.
✓ РЕШЕНИЕ ЗАКОНЧЕННОЕ.
Ключевым понятием данной задачи является группа из трёх цифр, стоящих вместе, — триада цифр.
Запись введённого числа x можно разделить на триады цифр. Группирование производится справа налево (от младших цифр к старшим). Если количество цифр в записи числа не кратно трём, это нормально.
• Переменная a — счётчик триад в записи числа x.
• Операция x mod 1000 определяет значение самой младшей триады в числе x.
Таким образом строка b := b*(x mod 1000); умножает значение b на значение младшей триады.
• Строка x := x div 1000; фактически отсекает от записи числа x младшую триаду.
• Цикличность выполнения строк
b := b*(x mod 1000);
x := x div 1000;
формирует в переменной b произведение значений всех триад из записи числа x, включая неполную триаду (самую старшую).
Таким образом, если a = 2, b = 11, то в записи введённого числа ровно 2 триады, а произведение их значений равно 11.
✓✓✓ ВАЖНОЕ ЗАМЕЧАНИЕ!!! Число 11 является простым, то есть оно делится исключительно на 1 и на 11.
Из этого следует, что существует только 2 числа, записи которых удовлетворяют условиям задачи: 1011 и 11001.
Каждое из этих чисел делится на 2 триады цифр, причём старшая триада — неполная.
⟨1011⟩ <==> ⟨001⟩ + ⟨011⟩
⟨11001⟩ <==> ⟨011⟩ + ⟨001⟩
Меньшее из этих чисел есть 1011.
✓ РЕШЕНИЕ ЗАКОНЧЕННОЕ.
Похожие вопросы
- Решите неравенство а) 6+2х>1 б) 2-7x4 д) 0.6x+2>6-x е) 0.2x-11=2+1.5x з) 2-3x<=1.4-2x
- можно ли вскипятить воду в кастрюле,плавающей в кипящей воде?почему? ответ поясните.
- Помогути найти сумму квадратов корней уравнения! x^3+2x^2-3x-5=0 Ответ известен,он равен 10. Заранее спасибо
- Правильный 1001–угольник разбили непересекающимися диагоналями на 999 треугольников.
- Какие из формул задают функцию y=f(x) А) x^2 + y^2 =9 Б) y^2 = x В) |y| =|x| Г) x=5 Д) Ни одна из выше перечисленных.
- Помогите пожалуйста решить задачу: дан брусок: 30, 31, 11 мм. Вес 0.7 Н. Найти плотность. Ответ почему-то 8.3 г/см куб.
- 3. Найдите производную функции: a) f(x)=6x^2+cos3x-e^x b)f(x)=xcosx c)f(x)=x^7+1/4x^4-2x^2+9
- ОТВЕТЫ НА ЗОЛОТОЕ РУНО 9-11 классы 2009 года
- решите уравнение. 1)под корнем х^4+x-9=1-x^2 2)под корнем х^4+x-9=x^2-1
- Помогите пожалуйста решить методом подстановки. 1) x+3y=7 и x+2y=5 2) 2x+y=-5 и x-3y=-6 3) x-y=3 и 3x+4y=2