题目描述 从杨辉三角中按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,... 给定一个正整数N,求数列中第一次出现N是第几个数。 输入格式 输入一个整数N。 输出格式 输出一个整数代表答案。 数据范围 1≤N≤10^10 样例 输入样例: 6 输出样例: 13给出C++优化代码和详细注释
时间: 2023-05-25 19:06:27 浏览: 68
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著
思路:根据杨辉三角可以知道,每一行的第i个数等于上一行的第i-1个数与第i个数之和,即C(n,i)=C(n-1,i-1)+C(n-1,i)。我们可以按照这个规律,逐行计算,当计算到某一行时,如果发现第一个大于等于N的数是第m个数,那么N就是第m个数。
代码实现:
时间复杂度O(n)
阅读全文