杨辉三角问题,如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, \cdots1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,⋯ 给定一个正整数 NN,请你输出数列中第一次出现 NN 是在第几个数? 输入描述 输入一个整数 NN。 输出描述 输出一个整数代表答案。 输入输出样例 示例 1 输入 6 copy 输出 13 copy 评测用例规模与约定 对于 20%20 的评测用例,1\leq N\leq 101≤N≤10; 对于所有评测用例,1\leq N\leq 10000000001≤N≤1000000000。请给出思路
时间: 2023-05-25 16:06:17 浏览: 62
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著
题目大意
给定一个正整数 N,按照杨辉三角的顺序将其中所有的数依次排列成一行,求第一次出现 N 的位置。
思路分析
首先我们需要知道杨辉三角的性质,即第 n 行有 n 个数,每行的两端数为 1,第 n 行的第 m 个数等于第 n-1 行的第 m-1 个数加上第 m 个数,即:
$$C_{n}^{m}=C_{n-1}^{m-1}+C_{n-1}^{m}$$
杨辉三角规律图
根据以上杨辉三角的规律,我们可以生成杨辉三角,并且也可以找出第一次出现 N 的位置。具体做法如下:
- 生成杨辉三角。我们可以使用二维数组来存储杨辉三角,其中第 i 行第 j 列的值表示杨辉三角中第 i 行第 j 列的数。
- 遍历杨辉三角,找到第一次出现 N 的位置并记录。我们可以从第一行第一列开始遍历,如果当前数字等于 N,则记录该数字的位置即可。
代码实现
阅读全文