A1049 Counting Ones

数学问题通常暴力的话会超时,规律自己又找不到,这类问题实际不好搞....

#include
int main()
{
	int n,a=1,ans=0;
	int left,now,right;
	scanf("%d",&n);
	while(n/a!=0)
	{
		left=n/(a*10);
		now=n/a%10;
		right=n%a;
		if(now==0) ans+=left*a;
		else if(now==1) ans+=left*a+right+1;
		else ans+=(left+1)*a;
		a*=10;
	}
	printf("%d\n",ans);
	return 0;
}

你可能感兴趣的:(PAT甲级)