题意:
解法:
某一个连续段的数,贡献是相同的.
统计[1e3,1e6-1]中有多少个数cnt,对答案的贡献为cnt*1,
统计[1e6,1e9-1]中有多少个数cnt,对答案的贡献为cnt*2,
统计[1e9,1e12-1]中有多少个数cnt,对答案的贡献为cnt*3,
统计[1e12,1e15-1]中有多少个数cnt,对答案的贡献为cnt*4,
统计[1e15,1e18-1]中有多少个数cnt,对答案的贡献为cnt*5,
code:
#include <bits/stdc++.h>
#define int long long
#define PI pair<int,int>
using namespace std;
const int maxm=2e6+5;
int n;
int f(int x){
int len=0;
while(x){
len++;
x/=10;
}
return (len-1)/3;
}
void solve(){
cin>>n;
int ans=0;
for(int l=1000,r=l*1000-1;l<=n;l*=1000,r=l*1000-1){
if(r<n){
ans+=(r-l+1)*f(l);
}else{
ans+=(n-l+1)*f(l);
break;
}
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(0);
solve();
return 0;
}