Ниже ** четырёх язы­ках за­пи­сан ал­го­ритм. По­лу­чив ** вход число х, этот ал­го­ритм...

0 голосов
71 просмотров

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


Информатика (18 баллов) | 71 просмотров
Дан 1 ответ
0 голосов

Анализируя алгоритм, можно понять, что а (первое печатаемое) - это количество "блоков" по 2 цифры в числе (иными словами, число "цифр" в сторичной системе счисления), б - сумма таких блоков. Т.к. "блоков" всего 2, то число можно представить в виде 100m+n, где м и н - целые, м не равно 0, m+n=17, m<100, n<100. Ясно, что число будет максимально, если максимально будет m. Этому условию соответствует число 1700.<br>

(3.2k баллов)