vovashkaruba
21.11.2020 04:59

Уартёма скоро день рождения, и он решил отпраздновать это событие, купив своим друзьям по коробке конфет. коробка состоит из m конфет, каждая из которых имеет вид — целые числа a1, a2, a3, am.

создайте класс candybox, который содержит внутри себя динамический массив.
class candybox {
int cnt; // количество конфет
int* candies; // динамический массив конфет
public:
candybox(); // конструктор, который создает пустую коробку
~candybox();
void read(); // операция чтения набора конфет с клавиатуры
void print(); // операция вывода набора конфет на экран
int varieties(); // количество различных видов конфет в коробке
};
с использованием полученного класса подсчитайте количество различных видов конфет в коробке и выведите его на экран.

формат входных данных
в первой строке вводится целое положительное число m (m ≤ 1) — количество конфет.

в следующей строке вводятся m неотрицательных чисел, не превышающих 109 — виды конфет.

формат выходных данных
требуется вывести одно целое число — количество различных видов конфет.
входные данные выходные данные
7
8 4 6 4 8 8 1
4

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
zarugeos
24.07.2021 15:07

program z1;

var a:array [1..6] of integer;

i,s:integer;

begin

s:=0;

randomize;

write ('Массив: ');

for i:= 1 to 6 do

begin

a[i]:=random(18);

write(a[i],'  ');

s:=s+a[i]

end;

writeln;

writeln ('Сумма элементов массива: ',s);

writeln ('Среднее арифметическое элементов массива: ',s/6:0:1)

end.

Объяснение:

Цикл:

1) присваиваем значение текущему элементу массива

2) выводим текущий элемент массива на экран

3) считаем сумму элементов массива

Выводим сумму элементов массива на экран

Выводим среднее арифметическое элементов массива на экран (делим сумму на количество элементов), используя форматированный вывод (указываем после второго двоеточия количество знаков после запятой при выводе числа)

0,0(0 оценок)
Ответ:
Kotuknarkotik
31.03.2020 20:19
Код программы ruby
for i in "1000".to_i(8).."7777".to_i(8)
    s = i.to_s(2)
    k = 0
    s.chars.each {|c| k += 1 if c == "1"}
    if (k==5)
        p [i, i.to_s(8), s, k]
        break
    end
end

Вывод
[527, "1017", "1000001111", 5]

ответ
1017

Если решать аналитически, то наверное это делается методом подбора плюс быстрым переводом восьмеричной системы в двоичную (каждая цифра 8чной переводится в 3 цифры 2чной, можно заранее посчитать кол-во единиц для каждой). Сразу понимаем что в числах 1000-1016 будет слишком мало единиц, только "7"_8 переводится в "111"_2. И еще две единицы дают "1"_8
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота