d
f
s
dfs
dfs 暴力
时间复杂度:
2000
w
2000w
2000w 左右
#include
using namespace std;
typedef long long LL;
LL n,ans;
void dfs(LL x,LL len,LL sum)
{
if(x>n||sum>20) return ;
if(x && len*2==sum) ans++;
for(int i=0;i<=9;i++)
{
LL y=x*10+i;
if(y && y<=n)
dfs(y,len+1,sum+i);
}
}
int main()
{
cin>>n;
dfs(0,0,0);
cout<<ans;
return 0;
}