Python实现基础数学的解法之进位问题
例题:已知92012 是一个1920位数,请问1,9,92,93,…,92012中有多少个数首位数字为9?
解:9k首位为9 <=> 9k-1首位为1 <=> 9k与9k-1数位一样多(即无进位)
即9k-1 -> 9k不进位时9k首位为9
又1,9,92,93,…,92012从1位数到1920位数共1919个进位,从而有2012-1919=93个未产生进位,故有93个数首位数字为9
python编程:
x=0
for i in range(0,2012):
a=9**i
b=int(len(str(a)))
if a//10**(b-1)==9:
x+=1
print(x)