劍指Offer(Python多種思路實現):1~n整數中1出現的次數
面試43題:
題目:1~n整數中1出現的次數
題:輸入一個整數n,求1~n這n個整數的十進制表示中1出現的次數。例如,輸入12,1~12這些整數中包含1的數字有1,10,11,12一共出現了5次。
解題思路一:直接累加1~n中每個整數中1出現的次數。
class Solution:
def NumberOf1Between1AndN_Solution(self, n):
# write code here
totalCount=0
for i in range(1,n+1):
totalCount+=self.NumberOf1Core(i)
return totalCount
def NumberOf1Core(self,number):
count=0
while(number):
if number%10==1:
count+=1
number=number//10
return count
解題思路二:
class Solution:
def NumberOf1Between1AndN_Solution(self, n):
# write code here
count=0
for i in range(1,n+1):
for j in str(i):
if j=="1":
count+=1
return count