Задание № 12273
Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 9.
Бейсик
DIM X, A, B AS INTEGER
INPUT X
A = 0: B = 0
WHILE X > 0
A = A+1
B = B+(X MOD 10)
X = X \ 10
WEND
PRINT A
PRINT B
Python
x = int(input())
a = 0
b = 0
while x > 0:
a = a + 1
b = b + (x % 10)
x = x // 10
print (a)
print (b)
Алгоритмический язык
алг
нач
цел x, a, b
ввод x
a := 0; b := 0
нц пока x>0
a := a+1
b := b+mod(x,10)
x := div(x,10)
кц
вывод a, нс, b
кон
Паскаль
var x, a, b: integer;
begin
readln(x);
a := 0; b := 0;
while x>0 do
begin
a := a+1;
b := b+(x mod 10);
x := x div 10
end;
writeln(a); write(b)
end.
Си
#include<stdio.h>
void main()
{
int x, a, b;
scanf("%d", &x);
a = 0; b = 0;
while (x>0) {
a = a+1;
b = b+(x%10);
x = x/10;
}
printf("%d\n%d", a, b);
}
Из строки a := a+1; понимаем, что переменная а это "счётчик", который считает сколько всего цифр в обрабатываемом числе. Получается что в числе всего две цифры(Условие задачи:при вводе которых алгоритм печатает сначала 2...).
Строка b := b+(x div 10); отвечает за сумму всех цифр в обрабатываемом числе.( div преднозначен для нахождения целого числа от деления ( (15 div 10) =1) )
Например: если обрабатываемое число 543, то эта строка будет складываеть числа 5, 4, 3 (5+4+3). Следовательно после обработки числа b=12
Т.к. b при выводе должно ровняться 9 то входяшее число X=9+0 или 8+1 или 7+2 или 6+3 или 5+4. Из этих цифр получаются числа 90, 81, 18, 72, 27, 36, 63, 54, 45 из этих чисел самое наибольшее 90
Ответ: 90Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.