""" 思路:用0表示偶数,1表示奇数,数组arr形式为: 1: 1 2: 1 1 1 3: 1 0 1 0 1 4: 1 1 0 1 0 1 1 5: 1 0 0 0 1 0 0 0 1 6: 1 1 1 0 1 1 1 0 1 1 1 7: 1 0 1 0 0 0 1 0 0 0 1 0 1 ...... 数组arr规律为: 1. 第一行为[1]; 2. arr[i+1] 前 j 个元素的值,完全取决于 arr[i] 前 j 个元素的值。即:用 n 表示{arr[i][j-2], arr[i][j-1], arr[i][j]}集合中1的个数: 若 n 为奇数,则 arr[i+1][j]=1(奇数个奇数相加,结果为奇数) 若 n 为偶数,则 arr[i+1][j]=0 (偶数个奇数相加,结果为偶数)找周期:
从第 3 行开始,截止每行前 m 个元素,构成数组 arr2, 保证 arr2 每行至少有 1 个 0, 当 arr2 中出现相同的两行,则表示 arr2 的元素序列呈现周期性。 示例: 从第三行开始,截取每行前 4 个元素,构成arr2(保证每行都至少有1个0): 3: 1 0 1 0 4:1 1 0 1 5: 1 0 0 0 6: 1 1 1 0 7: 1 0 1 0 可以发现,第 7 行 与第 3 行的元素一样,而每行所有元素的值又完全取决于上一行所有元素的值, 因此,可以判断,第 8 行必定与第 4 行的元素一样,第 9 行与 第 5 行的元素一样,...,第 i+4 行必定与第 i 行元素一致(i>=3) """ n_lines = int(input().strip()) arr = [2, 3, 2, 4] if n_lines < 3: print(-1) else: i = (n_lines-2)%4 - 1 print(arr[i])

京公网安备 11010502036488号