首页 > 学院 > 开发设计 > 正文

1049. Counting Ones (30)

2019-11-11 05:51:01
字体:
来源:转载
供稿:网友

The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1’s in 1, 10, 11, and 12.

Input Specification:

Each input file contains one test case which gives the positive N (<=230).

Output Specification:

For each test case, PRint the number of 1’s in one line.

Sample Input: 12 Sample Output: 5 题意:找出0~N内的个数,共有多少个1 算法:对每一位单独考虑,看该位可能存在多少个1; 可以找一个数,找出规律,如:30701,对个,十,百,千,万各位分析;

#include<cstdio>int main(){ int n,a=1,ans=0; int left,right,now; scanf("%d",&n); while(n/a){ left=n/(a*10); now=n/a%10; right=n%a; if(now<1) ans+=left*a; else if(now==1) ans+=left*a+right+1; else if(now>1) ans+=(left+1)*a; a*=10; } printf("%d/n",ans); return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表