今天的第一题~
输出杨辉三角前十行
我这里的方法是,先忽略前两行,将剩下的八行进行输出,而对于这八行,除去前后两个1,剩下的可以看作上一行前两个值相加,然后存入新列表,然后去掉源列表的第一个数,接下来就直接上代码吧
那个时候我还不知道滑窗算法这种东西,能自己琢磨出来我感觉我也是挺牛逼的,虽然……有那么一点点差别,但总体还是差不多的
'''
杨辉三角
'''
num_list = [1,1]
count = 8
print([1])
print([1,1])
while count > 0:
count -= 1
new_list = []
new_list.append(1)
for i in range(len(num_list) - 1):
new_list.append(num_list[0]+num_list[1])
num_list.remove(num_list[0])
new_list.append(1)
print(new_list)
num_list = new_list[:]
第二题~
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
这个……直接for循环吧,感觉没有啥可以说的
in_ = int(input('请输入总人数:'))
a = [x for x in range(1,in_+1)]
b = a[:]
list_count = 1 # 对a进行计数,如果list==3就进行处理,然后list==0
while len(b) > 1:
a = b[:]
for i in range(len(b)):
if list_count == 3:
b.remove(a[i])
list_count = 0
list_count += 1
print(b)