Cho n, đếm số chuỗi nhị phân độ dài n không có hai bit 1 liên tiếp.
Quy hoạch động: a[i] = số chuỗi độ dài i kết thúc bằng 0, b[i] = kết thúc bằng 1.
a[i] = a[i-1] + b[i-1], b[i] = a[i-1].
Chương trình C++ ví dụ
#include <iostream>
using namespace std;
int noConsecutiveOnes(int n) {
int a[n], b[n];
a[0]=1; b[0]=1;
for (int i=1;i
Kết quả
8