Ниже на четырёх языках записан алгоритм. получив на вход число х, этот алгоритм печатает два числа а и 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("%d\n%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 кон

ajdanayun ajdanayun    1   24.06.2019 04:40    1

Ответы
aruukewa123 aruukewa123  19.07.2020 19:54
Анализируя алгоритм, можно понять, что а (первое печатаемое) - это количество "блоков" по 2 цифры в числе (иными словами, число "цифр" в сторичной системе счисления), б - сумма таких блоков. Т.к. "блоков" всего 2, то число можно представить в виде 100m+n, где м и н - целые, м не равно 0, m+n=17, m<100, n<100. Ясно, что число будет максимально, если максимально будет m. Этому условию соответствует число 1700.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика