Ниже на четырёх язы­ках за­пи­сан ал­го­ритм. По­лу­чив на вход число х, этот ал­го­ритм пе­ча­та­ет два числа а и b. Ука­жи­те наи­боль­шее из таких чисел x, при вводе ко­то­рых ал­го­ритм пе­ча­та­ет сна­ча­ла 2, а потом 17. ...

Ниже на четырёх язы­ках за­пи­сан ал­го­ритм. По­лу­чив на вход число х, этот ал­го­ритм пе­ча­та­ет два числа а и 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 кон
Гость
Ответ(ы) на вопрос:
Гость
Анализируя алгоритм, можно понять, что а (первое печатаемое) - это количество "блоков" по 2 цифры в числе (иными словами, число "цифр" в сторичной системе счисления), б - сумма таких блоков. Т.к. "блоков" всего 2, то число можно представить в виде 100m+n, где м и н - целые, м не равно 0, m+n=17, m<100, n<100. Ясно, что число будет максимально, если максимально будет m. Этому условию соответствует число 1700.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы