Задание № 12273

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

Бейсик

DIM X, A, B AS INTEGER
INPUT X
A = 0: B = 0
WHILE X > 0
 	A = A+1
 	B = B+(X MOD 10)
 	X = X \ 10
WEND
PRINT A
PRINT B

Python

x = int(input())
a = 0
b = 0
while x > 0:
 	a = a + 1
 	b = b + (x % 10)
 	x = x // 10
print (a)
print (b) 

Алгоритмический язык

алг
нач
	цел x, a, b
	ввод x
 	a := 0; b := 0
	нц пока x>0
 		a := a+1
 		b := b+mod(x,10)
 		x := div(x,10)
	кц
	вывод a, нс, b
кон

Паскаль

var x, a, b: integer;
begin
 	readln(x);
 	a := 0; b := 0;
 	while x>0 do
 	begin
 		a := a+1;
 		b := b+(x mod 10);
 		x := x div 10
 	end;
 	writeln(a); write(b)
end. 

Си

#include<stdio.h>
void main()
{
 	int x, a, b;
 	scanf("%d", &x);
 	a = 0; b = 0;
 	while (x>0) {
 		a = a+1;
 		b = b+(x%10);
 		x = x/10;
 	}
 	printf("%d\n%d", a, b);
} 


Показать ответ
Комментарий:

Из строки a := a+1; понимаем, что переменная а это "счётчик", который считает сколько всего цифр в обрабатываемом числе. Получается что в числе всего две цифры(Условие задачи:при вводе которых алгоритм печатает сначала 2...).

Строка b := b+(x div 10); отвечает за сумму всех цифр в обрабатываемом числе.( div преднозначен для нахождения целого числа от деления ( (15 div 10) =1) )

Например: если обрабатываемое число 543, то эта строка будет складываеть числа 5, 4, 3 (5+4+3). Следовательно после обработки числа b=12

Т.к. b при выводе должно ровняться 9 то входяшее число X=9+0 или 8+1 или 7+2 или 6+3 или 5+4. Из этих цифр получаются числа 90, 81, 18, 72, 27, 36, 63, 54, 45 из этих чисел самое наибольшее 90

Ответ: 90

Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.