0
点赞
收藏
分享

微信扫一扫

CodeForces - 552B Vanya and Books (数学阶乘)水



CodeForces - 552B Vanya and Books (数学阶乘)水_Memory




//题意:



输入一个数字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;
}




举报

相关推荐

0 条评论