题解 | #杨辉三角的变形#

杨辉三角的变形

https://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43

# def value(i, j):
#     if i == 1 or i == 2 or j == 1 or j == 2*i -1:
#         return 1
#     else:
#         if j == 2:
#             return 1 + value(i-1, 2)
#         if j == 2*(i-1):
#             return value(i-1, 2*i-4) + 1
#         else:
#             return value(i-1, j-2) + value(i-1, j-1) + value(i-1, j)
# i = int(input())
# j = range(1, 2*i)
# a = -1
# for num in j:
#     if int(value(i, num)) % 2 == 0:
#         a = num
#         break
# print(a)
# 上面的超时


# 由数据结构可以得知,a[i][2] = 1 + a[i-1][2]
#                   a[i][3] = 1 + a[i-1][2] + a[i-1][3]
#                   a[i][4] = a[i-1][2] + a[i-1][3] + a[i-1][4] 
#  偶 + 偶 + 奇 = 奇
#  偶 + 奇 + 奇 = 偶
#  偶 + 偶 + 偶 = 偶
#  奇 + 奇 + 奇 = 奇
#  从第二行开始,第二位先是奇数,然后+1变成偶数,再然后+1变成奇数,所以,当行数为奇数时,此题输出为2。
#  若行数为偶数时:首先a[3][3]是个奇数,则a[4][3]= 奇 + 偶 + 奇 = 偶
#  a[5][3] = 奇 + 奇 + 偶 = 偶,(但此时第一个偶数已经是a[5][2]),   
#  a[6][3] = 奇 + 偶 + 偶 = 奇,
#  a[7][3] = 奇 + 奇 + 奇 = 奇。
#  所以,第三位是偶偶奇奇的循环。
#  同理,a[i][4] = a[i-1][2] + a[i-1][3] + a[i-1][4],
#  a[i-1][2] 和 a[i-1][3] 这两个元素的奇偶性随着i变化的规律我们已经知道,而且知道a[3][4],所以后面a[i][4]的规律也能和a[i][3]一样,用数学给归纳法做出来。事实上,这也是递归的思想。
n = int(input())
if n <= 2:
    print('-1')
else:
    if n % 2 == 1:
        print('2')
    elif (n - 2) % 4 == 2:
        print('3')
    elif (n - 2) % 4 == 0:
        print('4')

全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务