cjweffort

博客园 首页 联系 订阅 管理

编程之美上的题目。

// 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;
}


posted on 2013-03-12 10:45  cjweffort  阅读(229)  评论(0编辑  收藏  举报