题解 | #杨辉三角的变形#数学推导
杨辉三角的变形
https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43
第一反应可能是根据杨辉三角的形式,自己构建第行。但其实是奇偶性的变化是有规律的,不需要把第
行完整构建出来,只需写出前八行的前四个数字,就可以推导出每行的奇偶数初始位置的变化。
假设第行的第一个偶数的位置为
。
首先看前两位的变化。因为每行的第一个数固定是1,那么第二个数就是前一行的第二个数+1,奇偶性交替变化。第二行开始才有第二个数,并且第二个数是1,奇数开头。所以当且仅当为奇数,第二个数是偶数。
因此得出第一个结论:时,
,否则一定有
。
接下来看前四位的变化。写出前八行的前四个数字的奇偶性,观察它们的变化:
可以看出,前四个数字的奇偶性只会在这四种组合里按顺序循环。
因此可以得出结论:
def firsteven(n):
#n:int
if n<=2:
return -1
#规律:第一个数字固定是1,第二个数字是奇偶交替,且奇数行的第二个一定是偶数(除了1)
elif n%2==1:
return 2
#规律:整4行的第三个一定是偶数,并且前两个都是奇数(1,奇)
elif n%4==0:
return 3
#规律:非4倍数的偶数行第四个是奇数,可以从n=4往下推,推每行的前4个数即可
else:
return 4
while True:
try:
print(firsteven(int(input())))
except:
break
查看14道真题和解析

