
//题意:
输入一个数字n,让你计算组成1--n这n个数总共需要几位数字
//Hait:这里不能用math头文件里的pow(n,m)这个函数,会出错,(这这块WA了5次)所以自己定义一个就行了
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<math.h>
#define ll long long
using namespace std;
ll ppow(int n,int k)
{
ll s=1;
for(int i=1;i<=k;i++)
s*=n;
return s;
}
int main()
{
ll n;
while(scanf("%lld",&n)!=EOF)
{
ll sum=0;
int nn=log10(n);
sum=(nn+1)*(n-ppow(10,nn)+1);
while(nn)
{
nn--;
sum+=9*ppow(10,nn)*(nn+1);
}
printf("%lld\n",sum);
}
return 0;
}
|