描述

以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。
求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。
数据范围: 1≤𝑛≤109 1≤n≤109
输入描述:
输入一个int整数
输出描述:
输出返回的int值
示例1
输入:
4
输出:
3
注释掉的部分是构造类似的三角形,但是当n变大后,运行会超时,显然不能这么做,要寻找规律化简,最后发现当n=1或2时,没有偶数,返回-1,当n时其他奇数时,返回2,当n是4的倍数时,返回3,当n是其他数,也就是余4得2时,返回4。
n=int(input())
# def create(n):
# linelist=[]
# for i in range(n):
# if i==0:
# linelist.append([1])
# elif i==1:
# linelist.append([1,1,1])
# elif i==2:
# linelist.append([1,2,3,2,1])
# else:
# nowline=[]
# nowline.append(1)
# for j in range(1,n*2):
# if j==1:
# nowline.append(sum(linelist[i-1][:2]))
# elif j<len(linelist[i-1])-1:
# nowline.append(sum(linelist[i-1][j-2:j+1]))
# elif j==len(linelist[i-1])-1:
# nowline.append(sum(linelist[i-1][j-2:]))
# elif j==len(linelist[i-1]):
# nowline.append(sum(linelist[i-1][-2:]))
# nowline.append(1)
# linelist.append(nowline)
# return linelist
if n==1 or n==2:
print(-1)
elif n%2==1:
print(2)
elif n%4==0:
print(3)
else:
print(4)
315

被折叠的 条评论
为什么被折叠?



