Предмет: Информатика,
автор: danilnikov789
У исполнителя Калькулятор две команды
1 прибавить 1
2 прибавить 2
Первая из них увеличивает число на экране на 1, вторая на 3.Сколько разных чисел можно получить из числа 2 с помощью программы, каторая содержит ровно 10 команд?
Ответы
Автор ответа:
0
Ответ:
11.
Объяснение:
Написал программу, на разных тестовых данных ответ соответствовал кол-ву команд + 1, при условии, что ветвление на 2 действия и они идентичны по природе.
Получились такие числа:
12 14 16 18 20 22 24 26 28 30 32. size = 11
По другому обосновать не могу.
danilnikov789:
спасибо
#include
using std::cin;
using std::cout;
using std::vector;
vector vec_res;
const int end = 10, inc1 = 1, inc2 = 3;
void calc(int N, int inc, int number)
{
if (N > end)
{
vec_res.push_back(number);
return;
}
number += inc;
calc(N + 1, inc1, number);
calc(N + 1, inc2, number);
return;
}
{
for(int i = 0; i < vec_res.size(); i++)
for (int j = i + 1; j < vec_res.size(); j++)
if (vec_res[i] == vec_res[j])
{
vec_res.erase(vec_res.begin() + j);
j = i + 1;
}
}
void main()
{
calc(0,0,2);
delTheSame(); delTheSame();
for (int i = 0; i < vec_res.size(); i++)
cout << vec_res[i] << " ";
cout <<"\nCount: " << vec_res.size() << "\n";
cin.get(); cin.get();
}
Похожие вопросы
Предмет: Английский язык,
автор: romantkahenko84
Предмет: Физика,
автор: darinaiskorostenska
Предмет: Алгебра,
автор: Аноним
Предмет: Математика,
автор: гений174
Предмет: Физика,
автор: nnn172