以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。
求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。
数据范围:
num = int(input()) # 找规律:可以发现偶数出现在每一行的第几位为 2 4 2 3 # 这就成了周期问题 result = [2, 4, 2, 3] if num >= 3: print(result[num % 4 - 1]) else: print(-1)
import sys def triangle(row): n = row if n <= 2: print(-1) else: if n%2 != 0: #odd print(2) elif n%2 == 0 and n%4 == 0: print(3) else: print(4) return triangle(int(input()))
N = int(input()) if N <= 2: print(-1) else: if N % 2 == 0 and N % 4 == 0: print(3) elif N % 2 == 1: print(2) else: print(4)
# 看题目找规律: # 第 5 行: [1, 4, 10, 16, ...] 第 2 个 # 第 6 行: [1, 5, 15, 30, ...] 第 4 个 # 第 7 行: [1, 6, 21, ...] 第 2 个 # 第 8 行: [1, 7, 28, ...] 第 3 个 # 第 9 行: [1, 8, ...] 第 2 个 # ... # 于是不同行的偶数出现的位置为: # [-1, -1, 2, 3, 2, 4, 2, ...] # 我们大胆猜想, 从第 2 个开始: # 2, 3, 2, 4, 2, 3, 2, 4, .... # 这样的顺序出现, 即: # 1. 1 + 2 * n => 2; # 2. 4 * n => 3; # 3. 2 + 4 * n => 4; # 这样的猜想是有道理的. 首先题目所给的数据范围是 [1, 10^9] # 即便是使用 O(n) 的时间复杂度, 也肯定会超时, # 而看起来这题目又没有二分的方法去做, 所以肯定是找规律. # 代码如下: def solution(x: int) -> int: if x < 3: return -1 if x % 2 == 1: return 2 if x % 4 == 0: return 3 if x % 4 == 2: return 4 if __name__ == "__main__": n = int(input().strip()) print(solution(n))
def yung(n: int): if n == 1: return [[1]] else: y = [[0] * (2 * n - 1)] * n y[0][n-1]=1 for i in range(1,n): y[i][n - i - 1], y[i][i - n] = 1, 1 for j in range(n - i, n + i - 1): y[i][j] = y[i - 1][j - 1] + y[i - 1][j] + y[i - 1][j + 1] return y我这个生成杨辉三角的函数为什么结果不对呢,有没有大佬帮看下
n = int(input()) print(-1 if n <= 2 else [2, 3, 2, 4][(n - 3) % 4])
n = int(input()) if n == 1&nbs***bsp;n == 2 : print(-1) elif n % 2 == 1 : print(2) else : if (n-2)%4 == 0 : print(4) else : print(3)