第11题:结尾0的个数
给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数。(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大)。
例如: L=[2,8,3,50],
则输出:2
a = 0
num = 0
for i in range(1, len(L) - 1):
L[0] *= L[i] #从第一位开始依次乘后一位数,减少运算量
a = L[0]
a = str(a) #转换成字符串
a = a[::-1] #倒序切片
for i in str(a):
if i == '0':
num += 1
else:
break
print(num)
第12题:结尾非零数的奇偶性
给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性。如果为奇数输出1,偶数则输出0.。
例如:L=[2,8,3,50]
则输出:0
for i in range(1, len(L)):
L[0] *= L[i]
a = str(L[0])
for i in str(a)[::-1]:
if i != '0':
print(int(i) % 2)
break
第13题:光棍的悲伤
光棍们对1总是那么敏感,因此每年的11.11被戏称为光棍节。小Py光棍几十载,光棍自有光棍的快乐。让我们勇敢地面对光棍的身份吧,现在就证明自己:给你一个整数a,数出a在二进制表示下1的个数,并输出。
例如:a=7
则输出:3
print(bin(a).count('1'))
第14题:Python之美
输出Python之禅。
注意:输出python之禅的源码即可,不要转换为英文。(小小的提示:print this.s)
import this #娱乐题
第15题:大小写转换
给定一个字符串a, 将a中的大写字母 转换成小写,其它字符不变,并输出。
例如:a="aaaaaabbbDDDDD"
则输出:aaaaaabbbddddd
print(a.lower())
第16题:人民币金额打印(困难题)
银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。
在中文大写方式中,0到10以及100、1000、10000被依次表示为: 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万
以下的例子示范了阿拉伯数字到人民币大写的转换规则:
1 壹圆
11 壹拾壹圆
111 壹佰壹拾壹圆
101 壹佰零壹圆
-1000 负壹仟圆
1234567 壹佰贰拾叁万肆仟伍佰陆拾柒圆
现在给你一个整数a(|a|<100000000), 请你打印出人民币大写表示.
例如:a=1
则输出:壹圆
char_number = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
char_unit = ['拾', '佰', '仟']
def convert(n):
if n == 0: return ""
if n < 10: return char_number[n]
if len(str(n)) > 4:
if (n % 10000) // 1000 == 0 and n % 10000 != 0:
return convert(n // 10000) + "万零" + convert(n % 10000)
return convert(n // 10000) + "万" + convert(n % 10000)
tmp = 10 ** (len(str(n)) - 1) # 10**3=1000
if len(str(n)) - len(str(n % tmp)) > 1 and n % 10 != 0:
return convert(n // tmp) + char_unit[len(str(n)) - 2] + '零' + convert(n % tmp)
return convert(n // tmp) + char_unit[len(str(n)) - 2] + convert(n % tmp)
if a == 0:
print('零圆')
elif a < 0:
print('负' + convert(abs(a)) + '圆')
else:
print(convert(a) + '圆')
第17题:公约数的个数
给你两个正整数a,b, 输出它们公约数的个数。
例如:a = 24, b = 36
则输出:6
lista = []
for i in range(1, 24):
if a % i == 0 and b % i == 0:
lista.append(i)
print(len(lista))
第18题:逆解最大公约数与最小公倍数
我们经常遇到的问题是给你两个数,要你求最大公约数和最小公倍数。今天我们反其道而行之,给你两个数a和b,计算出它们分别是哪两个数的最大公约数和最小公倍数。输出这两个数,小的在前,大的在后,以空格隔开。若有多组解,输出它们之和最小的那组。注:所给数据都有解,不用考虑无解的情况。
例如:a=3, b = 60
则输出:12 15
a = 3
b = 60
import math
m = b / a
k = math.sqrt(m)
k1 = int(k)
k2 = int(b / a / k1)
print('{} {}'.format(a * k1, a * k2))
第19题:单身情歌
抓不住爱情的我 总是眼睁睁看它溜走 ...现在来练习一下发现爱的能力,给你一个字符串a,如果其中包含"LOVE"(love不区分大小写)则输出LOVE,否则输出SINGLE。
例如:a = "OurWorldIsFullOfLOVE"
则输出:LOVE
a = a.upper()
if a.find('LOVE') != -1:
print('LOVE')
else:
print('SINGLE')
第20题:信息加密
给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。这里将字母表的z和a相连,如果超过了z就回到了a。
例如a="cagy", b=3,
则输出 :fdjb
abc = 'abcdefghijklmnopqrstuvwxyz'
new_a = ''
for i in a:
i = abc.find(i)
i = i + b
if i <= 25:
new_a += ''.join(abc[i])
else:
i = i % 26
new_a += ''.join(abc[i])
print(new_a)