M.Writing Books

签到

题意

给定一个正整数 $n$ ,求 $1$ ~ $n$ 共有多少位数字

解题思路

$1$ ~ $9$ 共 $9\times 10^0 \times 1$ 位;
$10$ ~ $99$ 共 $9\times 10^1 \times 2$ 位;
以此类推,求和即可

参考代码

1
2
3
4
5
6
7
8
9
void solve()
{
ll n;
cin >> n;
ll a=1,x=9,cnt=0;
while(n>=x) {n-=x;cnt+=a*x;x*=10;a++;}
cnt+=a*n;
cout << cnt << endl;
}