题目描述
class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int count=0;
long long i=1;
for (i=1;i<=n;i*=10){
//i表示当时分析的是哪一个数位
int a=n/i,b=n%i;
count=count+(a+8)/10*i+(a%10==1)*(b+1);
}
return count;
}
};
public class Solution {
public int NumberOf1Between1AndN_Solution(int n) {
int count=0;
while (n>0){
String str=String.valueOf(n);
char [] chars=str.toCharArray();
for (int i=0;i<chars.length;i++){
if (chars[i]=='1')
count++;
}
n--;
}
return count;
}
}
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1Between1AndN_Solution(self, n):
# write code here
res=0
tmp=n
base=1
while tmp:
last=tmp%10
tmp=tmp/10
res+=tmp*base
if last==1:
res+=n%base+1
elif last>1:
res+=base
base*=10
return res