Без двух нулей подряд С++ Требуется посчитать количество последовательностей длины n, состоящих из цифр от 0 до k−1 таких, что никакие два соседних элемента последовательности не равны нулю одновременно.
Входные данные: Заданы два натуральных числа N и K (2≤K≤10; 2≤N; 4≤N+K≤18).
Выходные данные: Необходимо вывести целое число — ответ на задачу.
// кстати, а откуда задачки?
#include <iostream>
#include <string>
using namespace std;
int counter = 0;
int answer(string s, int l, int n, int length) {
for (char ch = '0'; ch < length + '0'; ++ch) {
if (ch == '0' && l && s[l - 1] == '0')
continue;
if (l + 1 < n)
answer(s + ch, l + 1, n, length);
else
++counter;
}
return counter;
}
int main() {
int n, length;
cin >> n >> length;
cout << answer("", 0, n, length);
}