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