A 市的车牌由六位组成, 其中前三位可能为数字 0 至 9 , 或者字母 A 至 F, 每位有 16 种可能。后三位只能是数字 0 至 9。为了减少攀比, 车牌中不能有连 续三位是相同的字符。
例如, 202020 是合法的车牌, AAA202 不是合法的车牌, 因为前三个字 母相同。
请问, A 市有多少个合法车牌?
#include<iostream>
using namespace std;
int a[7];
int ans = 0;
void dfs(int u){ //这里u是指的第几位
if(u == 6){
for(int i = 2;i <= 5;i++)
if(a[i] == a[i - 1]&& a[i - 1] == a[i - 2]) return ;
ans ++;
return ;
}
int up = u < 3 ?16:10;
for(int i = 1;i <= up;i++)
{
a[u] = i;
dfs(u + 1);
}
}
int main(){
dfs(0);
cout <<ans<<endl;
return 0;
}