首页 > 试题广场 >

杨辉三角的变形

[编程题]杨辉三角的变形
  • 热度指数:169129 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}定义变形的杨辉三角规则:
\hspace{23pt}\bullet\,第一行为固定的整数 1
\hspace{23pt}\bullet\,第二行开始,每行的数字数量均比上一行多两个,且中心对称(也可以看作是在上一行的基础上首尾增加了一个数字);每个位置上的数字是它正上方、左上角和右上角这三个数之和(如果不存在某个数,认为该数就是 0)。
\hspace{15pt}下方展示了计算的过程:
\begin{bmatrix}<br />1<br />\end{bmatrix}<br />\to<br />\begin{bmatrix}<br />{\color{grey}0} & 1 & {\color{grey}0} \\<br />1 & 1 & 1<br />\end{bmatrix}<br />\to<br />\begin{bmatrix}<br />{\color{grey}0} & {\color{grey}0} & 1 & {\color{grey}0} & {\color{grey}0} \\<br />{\color{grey}0} & 1 & 1 & 1 & {\color{grey}0} \\<br />1 & 2 & 3 & 2 & 1<br />\end{bmatrix}<br />\to<br />\begin{bmatrix}<br />{\color{grey}0} & {\color{grey}0} & {\color{grey}0} & 1 & {\color{grey}0} & {\color{grey}0} & {\color{grey}0} \\<br />{\color{grey}0} & {\color{grey}0} & 1 & 1 & 1 & {\color{grey}0} & {\color{grey}0} \\<br />{\color{grey}0} & 1 & 2 & 3 & 2 & 1 & {\color{grey}0} \\<br />1 & 3 & 6 & 7 & 6 & 3 & 1<br />\end{bmatrix}

\hspace{15pt}现在,你需要输出第 n 行中第一个偶数出现的位置。从 1 开始计数。

输入描述:
\hspace{15pt}输入一个整数 n \left(1 \leqq n \leqq 10^9\right) 代表询问的行数。


输出描述:
\hspace{15pt}输出一个整数,代表第 n 行中第一个偶数出现的位置。特别地如果第 n 行中没有偶数,则输出 -1
示例1

输入

4

输出

3
示例2

输入

3

输出

2
示例3

输入

1

输出

-1
头像 为什么机器不学习
发表于 2021-01-08 17:42:41
本题是找规律的题,只要往下再写几行就可以看出奇偶的规律,而且每行只需要写前几个就可以了,因为题目问的是第一个偶数的index。于是我们会发现,只有n为1,2时,没有出现偶数,剩下的按照2 3 2 4的规律每四行循环一次。 n 1 2 3 4 5 6 7 8 9 10 11 …… inde 展开全文
头像 钻石王老五
发表于 2021-11-07 21:28:18
一开始走入误区,研究怎么老实巴交地生成每行元素值,后来发现有规律,直接取巧走规律就行了 import sys alt=[2,3,2,4] #发现规律,从第三行开始2324循环 for line in sys.stdin: n=int(line.strip()) if n<3: 展开全文
头像 strawberryz
发表于 2021-03-24 23:16:27
题目描述 11 1 11 2 3 2 11 3 6 7 6 3 11 4 10 16 19 16 10 4 1以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数到右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。请在这里 展开全文
头像 IAMLEUNGWEI
发表于 2021-03-29 17:01:39
//杨辉三角规律 行号 第一个偶数在该行第几个 // 1 1 -1 // 1 展开全文
头像 我是一颗大白菜__
发表于 2021-09-28 17:05:11
//写几行就可以发现规律://n==1或2时,没有偶数,cout<<-1;//n==3时,index=2;//n==4,index=3;//n==5,index=2;//n==6,index=4;//n==7,index=2;//n==8,index=3;//n==9,index=2;/ 展开全文
头像 牛牛鸭
发表于 2021-02-02 14:33:18
看来看去大多是找规律的,如果找不到规律就凉凉了,这边完整用二维矩阵构建出杨辉三角变形,然后取最后一行遍历获得结果 while True: try: n = int(input()) res = - 1 #初始化结果为-1 l = [[0] 展开全文
头像 牛客969573159号
发表于 2021-10-06 15:51:45
while True: try: x1 = int(input()) if x1 == 1 or x1 == 2: print(-1) elif (x1+1) % 2 == 0: print(2) 展开全文
头像 小胖子呀萌萌哒
发表于 2021-10-01 10:07:22
题解:根据分析可得,此题乃找规律的题。 当输入的数字<=2时,都没有偶数,为-1, 当输入的数字>2时,有偶数,且遵循规律,出现的位置分别为 2 3 2 4,每4行循环一次 可以把出现的位置存入数组,以后每次取的时候,直接从数组中获取出现的位置。 如下: //题解,根据规律可发现,偶数出 展开全文
头像 牛客941341658号
发表于 2021-09-17 01:14:17
# //杨辉三角规律 行号 第一个偶数在该行第几个 # // 1 1 -1 # // 展开全文
头像 法拉利201903231900848
发表于 2019-08-18 16:50:42
while True:     try:         n=int(input())         展开全文

问题信息

难度:
465条回答 33704浏览

热门推荐

通过挑战的用户

查看代码
杨辉三角的变形