一、牛客网
题目一:从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
输入:输入任意个整数
输出:输出负数个数以及所有非负数的平均值
比如:
输入:-13 -4 -7
输出:3 0.0
自己的解法:
while 1:
try:
l=input().split()
a,b,c=0,0,0
for i in l:
if int(i)<0:
b+=1
else:
a+=1
c+=int(i)
if a is 0:
print(0.0)
else:
print(b,"%.1f"%(c/a))
except:
break
二、字符串分割
题目二:连续输入字符串(输出次数为N,字符串长度小于>100),请按长度为8拆分每个字符串后输出到新的字符串数
组,长度不是8整数倍的字符串请在后面补数字0,空字符串
不处理。首先输入一个整数,为要输入的字符串个数。
例如:
输入:2
abc
12345789
输出:abc00000
12345678
90000000
比如:
输入:-13 -4 -7
输出:3 0.0
while 1:
try:
a=int(input())
b=list()
for i in range(int(a)):
x=input()
b.append(x)
for j in b:
x=len(j)%8
if x is not 0:
j+="0"*(8-(len(j)%8))
for i in range(int(len(j)/8)):
print(j[i*8:8*(i+1)])
else:
for i in range(int(len(j)/8)):
print(j[i*8:8*(i+1)])
except:
break
我自己一开始理解错误:
写了另外一个版本,这个版本的理解在于,把所有的字符串都加在一起集体分割:
while 1:
try:
a=int(input())
n=""
b=0
for i in range(a):
s=str(input())
n+=s
x=len(n)%8
print(x)
if x is 0:
for i in range(int(len(n)/8)):
print(n[i*8:8*(i+1):1])
else:
n+="0"*(8-(len(n)%8))
for i in range(int(len(n)/8)):
print(n[i*8:8*(i+1)])
except:
break
三、总结
对于算法还是需要继续锻炼