Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 3, а потом 7.
Бейсик | Python
DIM X, L, M AS INTEGER
INPUT X
L = 0
M = 0
WHILE X > 0
M = M + 1
IF X MOD 2 <> 0 THEN
L = L + 1
END IF
X = X \ 2
WEND
PRINT L
PRINT M
|
x = int(input())
L = 0
M = 0
while x > 0:
M = M + 1
if x % 2 != 0:
L = L + 1
x = x // 2
print(L)
print(M)
Паскаль | Алгоритмический язык
var x, L, M: integer;;
begin
readln(x);
L := 0;
M := 0;
while x > 0 do
begin
M := M + 1;
if x mod 2 <> 0
then L := L + 1;
x := x div 2;
end;
writeln(L);
writeln(M);
end.
|
алг
нач
цел x, L, M
ввод x
L := 0
M := 0
нц пока x > 0
M := M + 1
если mod(x,2) <> 0 то
L := L + 1
все
x := div(x,2)
кц
вывод L
вывод M
кон
С++
#include <iostream>
using namespace std;
int main()
{
int x, L, M;
cin >> x;
L = 0;
M = 0;
while (x > 0) {
M = M + 1;
if(x % 2 != 0){
L = L + 1;
}
x = x / 2;
}
cout
Бейсик | Python
DIM X, L, M AS INTEGER
INPUT X
L = 0
M = 0
WHILE X > 0
M = M + 1
IF X MOD 2 <> 0 THEN
L = L + 1
END IF
X = X \ 2
WEND
PRINT L
PRINT M
|
x = int(input())
L = 0
M = 0
while x > 0:
M = M + 1
if x % 2 != 0:
L = L + 1
x = x // 2
print(L)
print(M)
Паскаль | Алгоритмический язык
var x, L, M: integer;;
begin
readln(x);
L := 0;
M := 0;
while x > 0 do
begin
M := M + 1;
if x mod 2 <> 0
then L := L + 1;
x := x div 2;
end;
writeln(L);
writeln(M);
end.
|
алг
нач
цел x, L, M
ввод x
L := 0
M := 0
нц пока x > 0
M := M + 1
если mod(x,2) <> 0 то
L := L + 1
все
x := div(x,2)
кц
вывод L
вывод M
кон
С++
#include <iostream>
using namespace std;
int main()
{
int x, L, M;
cin >> x;
L = 0;
M = 0;
while (x > 0) {
M = M + 1;
if(x % 2 != 0){
L = L + 1;
}
x = x / 2;
}
cout
💡 Пошаговый разбор и решение:
Проанализировав программу, приходим к выводу, что M — это количество цифр в двоичной записи числа x, M должно быть = 7, следовательно, в двоичной записи числа x должно быть семь цифр. Также заметим, что L — это число разрядов двоичной записи числа x, в которых стоит единица. Необходимо найти наибольшее число x, поэтому в старших разрядах должны стоять три единицы, а за ними идти нули. Таким образом, получаем, что число x = 11100002 = 11210.
Ответ: 112.
Приведём другое решение на языке Python.
for i in range(10000, 1, -1):
x = i
L = 0
M = 0
while x > 0:
M = M + 1
if x % 2 != 0:
L = L + 1
x = x // 2
if L == 3 and M == 7:
print(i)
break
Ответ: 112.
Приведём другое решение на языке Python.
for i in range(10000, 1, -1):
x = i
L = 0
M = 0
while x > 0:
M = M + 1
if x % 2 != 0:
L = L + 1
x = x // 2
if L == 3 and M == 7:
print(i)
break
Правильный ответ:
112
📚 Похожие разобранные задания по предмету:
ID 31487 • Задание №11
В велокроссе участвуют 459 спортсменов. Специальное устройство регистрирует прохождение каждым из участников п...
ID 29660 • Задание №3
Ниже представлены две таблицы из базы данных. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном...
🔗 Другие задания линии №22 по предмету Информатика:
ID 33548
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят...
ID 33549
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят...
ID 33550
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят...
ID 33551
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят...
ID 33552
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполнят...