Замечание. Так как количество вводимых чисел заранее не известно, то откроем бесконечный цикл со всегда верным условием True, но как только будет введено число 0, остановим цикл командой break.
Программа:
program z; var k,s,x:integer; begin k:=0; {начальное значение количества двузначных чисел} s:=0; {начальное значение суммы двузначных чисел} while True do {открываем бесконечный цикл} begin readln(x); {вводим число х} if x=0 then break; {если введенное число равно 0, то остановить цикл} if (x>9)and(x<100) then {если число двузначное, т.е. от 10 до 99} begin k:=k+1; {количество увеличиваем на 1} s:=s+x; {увеличиваем предыдущее значение суммы на число х} end; end; if k=0 then writeln('NO') {если двузначных чисел не было, то вывод NO} else writeln(s/k); {иначе вывод ср.арифметического} end.
Запишем вычисление суммы "в столбик", помня, что вычисления проводятся в системе счисления по некоторому основанию n>7. Почему именно n>7? Потому, что если бы основание системы было равно или меньше семи, в записи числа цифра семь не могла бы существовать. 12 + 17
31 В младшем разряде 2+7=1, чего быть не может, следовательно, 2+7=11 и единица пошла в старший разряд. Подтверждение этому мы видим при сложении в старшем разряде: 1+1+1=3 (учтена единица от переноса). Мы знаем, что 2+7=9 в десятичной системе счисления, а у нас получилось 11. Находим разницу: 11-9=2. Именно на столько основание системы счисления меньше десяти. 10-2=8. Следовательно, система счисления восьмеричная. ответ: в восьмеричной системе счисления.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку