將數字轉成國字的題型,比方說34567,國字就是三萬四千五百六十七。不過這是英文版的轉換,在切數字方面苦惱了一陣子。
import random
#input
def test():
ord=1
sinput=input()
while (sinput!=""):
num_1=str(sinput)
print("%4d."%i,end=" ")
pr(num_1)
ord+=1
sinput=input()
這段是在讀取測資,因為題目有要求有序輸出,所以就在這裡輸出列號
def pr(num):
snum=[]
modst={0:"kuti",1:"kuti",2:"kuti",3:"shata",4:"hajar",5:"hajar",6:"lakh",7:"lakh"}
mo=[1,2,3,1,1,2,1,2]
st=["kuti","lakh","hajar","shata"]
moid=[3,2,2,1]
if(len(num)<7):
mo[0],mo[1],mo[2]=0,1,2
most=len(num)%8
print("{0} {1} ".format(num[:mo[most]],modst[most]),end="")
num=num[mo[most]:]
#snum.append(modst[most])
most=(st.index(modst[most])+1)%4
while(num!=""):
if(int(num[:moid[most]])!=0):
if(len(num)>2):
print(" {0} {1}".format(int(num[:moid[most]]),st[most]))
else:
print(" {0}".format(int(num[:moid[most]])))
#snum.append(int(num[:moid[most]]))
#snum.append(st[most])
num=num[moid[most]:]
most=(most+1)%4
test()
這邊則是先輸出一次,第一次輸出一定不為零。但是之後不一定,所以用3,2,2,1節奏抓取數字後,判斷不為零再做輸出。
今天練習的題目,但是輸出時候尾數如果為無,會和下一列輸出相連。
如下圖,看來要再熟悉如何輸出
20. 9 shata 37
21. 39 kuti 22. 3 shata 48
23. 7 shata 92
感謝撥冗閱讀,歡迎留言指教。