知恵袋の桁数の問題をPythonで解いてみました。(^_^;
〈桁数と最高位の数字,一の位の数字〉
とする。
(1)Aの一の位の数字を答えよ。
(2)Aは何桁の整数か。
(3)また,Aの最高位の数字を求めよ。
ただし,とする。
ただし、(2)を、(2)と(3)に分けました。(^_^;
ちなみに、(3)は、数学的には常用対数の小数部分から求めます。具体的には、下記の表と大小比較して求めます。
lg(2) = 0.301029995663981
lg(3) = 0.477121254719662
lg(4) = 0.602059991327962 = 2*lg(2)
lg(5) = 0.698970004336019 = 1-lg(2)
lg(6) = 0.778151250383644 = lg(2)+lg(3)
lg(7) = 0.845098040014257
lg(8) = 0.903089986991944 = 3*lg(2)
lg(9) = 0.954242509439325 = 2*lg(3)
ただし、。
※参考URL
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13131389183
● Digit1.py
# coding: UTF-8 # Digit1.py def main(): from time import time tm=time() # Timer Start a = 12**60 print("A = %d"%a) print( "(1) %d"%(a%10)) n = len(str(a)) # int(log10(a))+1 print(u"(2) %d 桁"%n) print( "(3) %d"%(a//10**(n-1))) tm=time()-tm # Timer Stop print("Runtime : %.3f [sec]"%tm) if __name__ == '__main__': main()
●実行結果
A = 56347514353166785389812313795980500551139163800306781874894667776 (1) 6 (2) 65 桁 (3) 5 Runtime : 0.000 [sec]