python实现代码
#小明种苹果(续)
N = int(input("苹果树的棵数:"))
T = 0 #全部疏果操作结束后所有苹果树上剩下的苹果总数
D = 0 #发生苹果掉落的苹果树的棵树(不是总共掉落的次数)
E = 0 #相邻连续三棵树发生苹果掉落情况的组数
E_list = [0] * N #用来记录每棵树的掉落情况,0为没有发生,1为发生了掉落
for i in range(N):
alist = list(map(int, input("请输入每棵树的操作记录:").split()))
n = len(alist)
#1、计算N
for j in range(n-1, 0, -1):
if alist[j] > 0:
sum_i = 0 #第i棵树最后剩下的苹果树
for s in range(j, n):
sum_i += alist[s]
break
T += sum_i
#2、计算D
for j in range(2, n): #由于第一个操作是记录一开始每棵树的苹果总数,所以只需从第二个操作开始检查
if alist[j] > 0:
before = 0 #记录第(j+1)个操作之前的苹果树
for s in range(1, j):
before += alist[s]
if before > alist[j]: #发生了掉落
E_list[i] = 1 #记录第(i+1)棵树发生了掉落
D = sum(E_list)
#3、计算E
for i in range(N):
#端点处用周期性解决(即取余数)
if E_list[i] == 1 and E_list[(i+1)%N] == 1 and E_list[(i+2)%N] == 1:
E += 1
print(T, D, E)