В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
1970даша
1970даша
20.01.2021 11:03 •  Информатика

Дан массив b из n целых чисел.составьте алгоритм подсчета, сколько раз в массиве встречается минимальное число

Показать ответ
Ответ:
premium79
premium79
29.08.2022 16:28

Такие задания со сложными условиями легче всего решать программой на питоне:

for n in range(1, 10000000):  # Грубый перебор

   n -= n % 4  # 1. Из числа N вычитается остаток от деления N на 4.

   n = bin(n)[2:]  # 2. Строится двоичная запись полученного результата. + срез "0b"

   n = n + str(n.count('1') % 2)  # 3. a)

   n = n + str(n.count('1') % 2)  # 3. б)

   r = int(n, 2)  # Перевод в 10 с.с.

   if r > 56:

       print(r)  

       break

ответ: 66

Если всё же рассуждать, то опять перебором:

Возьмём, например, число 5 и выполним алгоритм:

1. 5 - 5 % 4 = 4

2. 4 -> 100

3. a) 1001

   б) 10010

R = 18, очень мало

Возьмём, например, 14:

1. 12  

2. 1100

3. a) 11000

   б) 110000

R = 48, маловато, но близко

Возьмём, например, 15:

1. 12

Видим, будет тоже, что и 14

Возьмём, например, 16:

1. 16

2. 10000

3. a) 100001

   б) 1000010

R = 66, то, что нам нужно.

ответ: 66

0,0(0 оценок)
Ответ:
fedosovdenis28
fedosovdenis28
13.02.2022 04:09

(см. объяснение)

Объяснение:

Решение на PascalABC.NET:

##

var a: BigInteger := BigInteger.Subtract(BigInteger.Subtract(BigInteger.Multiply(BigInteger.Parse('3'), BigInteger.Pow(BigInteger.Parse('2'), 32)), BigInteger.Pow(BigInteger.Parse('2'), 10)), BigInteger.Parse('3'));

var b: String;

while(a>0) do

begin

 b:= BigInteger.Remainder(a, 4).ToString+b;

 a:= BigInteger.Divide(a, 4);

end;

print(b.Count(x->x='3'));

Решение на Python3:

a = 3 * 2 ** 32 - 2 ** 10 - 3

b = ''

while a > 0:

   b = str(a % 4) + b

   a //= 4

print(b.count('3'))

Решение на Java:

import java.math.BigInteger;

public class Study

{

public static void main(String[] args)

{

System.out.println(BigInteger.valueOf(3L).multiply(BigInteger.valueOf(2L).pow(32)).subtract(BigInteger.valueOf(2L).pow(10)).subtract(BigInteger.valueOf(3L)).toString(4).chars().filter(x->x=='3').count());

}

}

Результатом работы программ во всех случаях будет одно число 14.

Задание выполнено!

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота