编程之美上的题目。
// 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; }