#includeusing namespace std;int dp[11][10],n,m;void init(){ //dp[i][j]:i位的数,最高位是j dp[0][0]=1; for(int i=1;i<=7;i++) for(int j=0;j<10;j++) for(int k=0;k<10;k++) if(j!=4 && !(j==6 && k==2)) dp[i][j]+=dp[i-1][k]; }int solve(int n){ //求[0,n)范围合法的个数 int res=0,len=0,d[11]={}; while(n)d[++len]=n%10,n/=10; d[len+1]=0; for(int i=len;i>=1;i--){ //从高到低枚举每位 for(int j=0;j >n>>m,m)cout< <