保存个模板
#include<stdio.h>
#include<string.h>
using namespace std;
typedef long long ll;
int a[20];
ll dp[20][2];
ll dfs(int pos,bool six,bool limit)
{
if(pos==0) return six?1:0;
int state=six?1:0;
if(!limit&&dp[pos][state]!=-1) return dp[pos][state];
int up=limit?a[pos]:9;
ll ans=0;
for(int i=0;i<=up;++i)
{
ans+=dfs(pos-1,six||i==6,limit&&i==a[pos]);
}
if(!limit) dp[pos][state]=ans;
return ans;
}
ll solve(ll x)
{
memset(dp, -1, sizeof(dp));
int pos=0;
while(x)
{
a[++pos]=x%10;
x/=10;
}
return dfs(pos,0,1);
}
int main()
{
ll le,ri;
scanf("%lld %lld",&le,&ri);
printf("%lld\n",solve(ri)-solve(le-1));
return 0;
}