编程之美上的题目。
// 1049. Counting Ones.cpp: 主项目文件。
#include "stdafx.h"
#include <cstdio>
#include <cstring>
long long countOnes(int num){
long long ret=0;
int expPower=1;
while(num/expPower!=0){
int iLowNumber=num%expPower;
int curNum=num/expPower%10;
int iHighNumber=num/expPower/10;
if(curNum<1){
ret+=iHighNumber*expPower;
}
else if(curNum==1){
ret+=iHighNumber*expPower+iLowNumber+1;
}
else{
ret+=(iHighNumber+1)*expPower;
}
expPower*=10;
}
return ret;
}
int main()
{
int num;
scanf("%d",&num);
long long res=countOnes(num);
printf("%lld\n",res);
return 0;
}