Предмет: Информатика,
автор: amidieHer
Ниже на четырёх языках записан алгоритм. Получив на вход число х, этот алгоритм печатает два числа а и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 17.
бесик
DIM X, А, В AS INTEGER
INPUT X
А = 0: В = 0
WHILE X > 0
А = А+1
В = В + (X MOD 100)
X = Х100
WEND
PRINT А
PRINT В
паскаль
var х, a, b: integer;
begin
readln(х);
а : = 0; b : = 0;
while х > 0 do
begin
а := а+1;
b := b + (х mod 100);
х := х div 100;
end;
writeln(a);
write(b);
end.
си
#include
void main()
{
int x, a, b;
scanf("Id", &x);
a = 0; b = 0;
while (x > 0) {
a = a+1;
b = b + (x%100);
x = x/100;
}
printf("%dn%d", a, b);
}
алг
алг
нач
цел x, a, b
ввод x
a:=0; b:=0
нц пока x > 0
a := a+1
b := b+mod(x,100)
x := div(x,100)
кц
вывод а, нс, b
кон
Ответы
Автор ответа:
0
Анализируя алгоритм, можно понять, что а (первое печатаемое) - это количество "блоков" по 2 цифры в числе (иными словами, число "цифр" в сторичной системе счисления), б - сумма таких блоков. Т.к. "блоков" всего 2, то число можно представить в виде 100m+n, где м и н - целые, м не равно 0, m+n=17, m<100, n<100. Ясно, что число будет максимально, если максимально будет m. Этому условию соответствует число 1700.
Похожие вопросы
Предмет: Биология,
автор: bekzhan63951
Предмет: Другие предметы,
автор: vladlebedev065
Предмет: Литература,
автор: Аноним
Предмет: Алгебра,
автор: korishok
Предмет: Алгебра,
автор: liebiedievi