Mac 學習系列之Python Challenge 11-20

來源:互聯網
上載者:User

標籤:mac   python   學習   編程   語言   

11.給你一個正整數列表 L, 如 L=[2,8,3,50], 輸出L內所有數位乘積末尾0的個數,
如範例L的結果為2.(提示:不要直接相乘,數字很多,可能溢出)

Answer:n_2 = 0n_5 = 0for tmp in L:    while tmp % 2 == 0:        n_2 += 1        tmp /= 2    while tmp % 5 == 0:        n_5 += 1        tmp /= 5print min(n_2,n_5)

12.給你一個正整數列表 L, 如 L=[2,8,3,50], 判斷列表內所有數字乘積的最後一個非零數位奇偶性,
奇數輸出1,偶數輸出0. 如範例輸出應為0

Answer:result = reduce(lambda a,b:a*b, L)no_zero = int(str(result).replace(‘0‘, ‘‘))print(no_zero & 1)

13.光棍們對1總是那麼敏感,因此每年的11.11被戲稱為光棍節。
鄙人光棍幾十載,光棍自有光棍的快樂。讓我們勇敢面對光棍的身份吧,
現在就證明自己:給你一個整數a,數出a在二進位表示下1的個數,並輸出。

a % 2 == 1Answer:print bin(a).count(“1")

14.輸出Python之禪
注意:輸出python之禪的源碼即可,不用轉換為英文。(小小的提示:print this.s)

Answer:import thisprint this.s

15.給定一個字串a, 將a中的大寫字母 轉換成小寫,其它字元不變,並輸出。

Answer:print a.lower()

16.銀行在列印票據的時候,常常需要將阿拉伯數字表示的人民幣金額轉換為大寫表示,現在請你來完成這樣一個程式。
在中文大寫方式中,0到10以及100、1000、10000被依次表示為:
零壹貳三肆伍陸柒捌玖拾佰仟萬
以下的例子示範了阿拉伯數字到人民幣大寫的轉換規則:

1 壹圓
11 壹拾壹圓
111 壹佰壹拾壹圓
101 壹佰零壹圓
-1000 負壹仟圓
1234567 壹佰貳拾三萬肆仟伍佰陸拾柒圓

現在給你一個整數a(|a|<100000000), 列印出人民幣大寫表示.
注意:由於中文亂碼問題,輸出時請先decode(“utf8”),例如你要輸出ans = “零圓”, print ans.decode(“utf8”).

Answer:m=[‘零‘,‘壹‘,‘貳‘,‘三‘,‘肆‘,‘伍‘,‘陸‘,‘柒‘,‘捌‘,‘玖‘]n=[‘‘,‘拾‘,‘佰‘,‘仟‘,‘圓‘,‘萬‘]b=str(abs(a))l=len(b)if a<0:    c=‘負‘else:    c=‘‘def num(ln):    c=‘‘    l=len(ln)    i=0    if l==1 and ln[0]==‘0‘:        c+=m[0]        return c    if l==4 and ln==‘0000‘:        c+=m[0]        return c    while i<l:        while i<l and int(ln[i])==0:            i+=1            if i<l and int(ln[i])!=0:                c+=m[0]                break        if i==l: break        c+=m[int(ln[i])]        c+=n[l-i-1]        i+=1    return cif l<=4:    c=c+num(b)+n[4]else:    c=c+num(b[:l-4])+n[5]+num(b[l-4:])+n[4]print c.decode("utf8")

17 . 給你兩個正整數a,b, 輸出它們公約數的個數。

Answer:print len(set([i for i in range(2,max(a,b)) if (a%i == 0 and b%i==0)])) + 1

18 . 我們經常遇到的問題是給你兩個數,要你求最大公約數和最小公倍數。
今天我們反其道而行之,給你兩個數a和b,計算出它們分別是哪兩個數的最大公約數和最小公倍數。
輸出這兩個數,小的在前,大的在後,以空格隔開。若有多組解,輸出它們之和最小的那組。
註:所給資料都有解,不用考慮無解的情況。
Answer:

c=b/al=[]for i in range(c):    if c%(i+1)==0:        l.append(i+1)print str(l[len(l)/2-1]*a)+" "+str(l[len(l)/2]*a)

19 . 抓不住愛情的我
總是眼睜睜看它溜走

現在來練習一下發現愛的能力,給你一個字串a,如果其中包含”LOVE”(love不區分大小寫)則輸出LOVE,否則輸出SINGLE。

Answer:print ‘LOVE‘ if ‘love‘ in a.lower() else ‘SINGLE‘

20 . 給你個小寫英文字串a和一個非負數b(0<=b<26), 將a中的每個小寫字元替換成字母表中比它大b的字母。
這裡將字母表的z和a相連,如果超過了z就回到了a。例如a=”cagy”,b=3, 則輸出 fdjb

Answer:s=‘‘for i in a:if ord(i)>=97 and ord(i)<=122:i=chr(97+(ord(i)+b-97)%26)s+=iprint s   

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Mac 學習系列之Python Challenge 11-20

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.