题解 | #杨辉三角的变形#
杨辉三角的变形
http://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43
非取巧找规律 完整获取杨辉三角变形详解
方法1:本人 python解
while True:
try:
n = int(input())
if n <= 2:
print(-1)
L0 = []
L1 = []
for i in range(n):
if i == 0:
L0.append(1)
L1 = []
elif i == 1:
L0 = [1]
L1 = [1, 1, 1]
else:
L0 = list(L1)
L1 = []
m = len(L0) + 2
for ii in range(m):
if ii == 0:
L1.append(L0[ii])
elif ii == 1:
L1.append(L0[ii - 1] + L0[ii])
elif ii == (m-1):
L1.append(1)
elif ii == (m - 2)and((m-2)>2):
L1.append(L0[-1] + L0[-2])
else:
L1.append(L0[ii - 2] + L0[ii - 1] + L0[ii])
num = 0
for pos in range(len(L1)):
if L1[pos] %2 ==0:
num = pos +1
break
if num == 0:
print(-1)
else:
#print(L1)
print(num)
except:
breaki 是 第i行。ii代表第ii列。
方法2:python
while True:
try:
n = int(input())
res = - 1 #初始化结果为-1
l = [[0]*(2*n+1) for _ in range(n)] #以n行的长度创建二维矩阵,每行开头插入2个0
l[0][2] = 1 #第一行起始值为1(因开头插入了两个0,所以第三位为1)
for x in range(1,n): #构造完整的杨辉三角矩阵
for j in range(2,2*(x+2)-1):
l[x][j] = l[x-1][j-2]+l[x-1][j-1]+l[x-1][j]
for i in range(len(l[n-1][2:])): #遍历杨辉三角矩阵最后一行,去掉开始插入的两个0
if int(l[n-1][2:][i])%2 == 0: #如果发现偶数,输入下标,并把答案res置为!=-1的值
print(i+1)
res = 0
break
if res == -1: #如果前面没有找到偶数,那么res还是初始值,输出即可满足题意
print(-1)
except:
break方法3:python 找规律
//杨辉三角规律 行号 第一个偶数在该行第几个
// 1 1 -1
// 1 1 1 2 -1
// 1 2 3 2 1 3 2
// 1 3 6 7 6 3 1 4 3
// 1 4 10 16 19 16 10 4 1 5 2
// 1 5 15 30 45 51 45 30 15 5 1 6 4
//
while True:
try:
n = int(raw_input())
ans = -1
if n <= 2:
ans = -1
elif n % 2 == 1:
ans = 2
elif n % 4 == 0:
ans = 3
else:
ans = 4
print ans
except:
break
平安产险科技中心工作强度 24人发布