下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 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 输出 13 评测用例规模与约定 对于 20%20 的评测用例,1\leq N\leq 101≤N≤10; 对于所有评测用例,1\leq N\leq 10000000001≤N≤1000000000。给出c++代码
时间: 2023-05-24 15:06:45 浏览: 112
数据结构 杨辉三角形
5星 · 资源好评率100%
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
long long cur = 1; // 当前位的数值
long long cnt = 0; // 已经输出了多少个数
for (int i = 0; i < 2*n; i++) {
if (i % 2 == 0) { // 每一行的第一个数
cnt++;
cur = 1;
} else { // 每一行的其他数
cur = cur * (i/2+1) / (i/2); // 根据杨辉三角的公式计算当前数值
}
if (cur == n) { // 如果当前数值等于要查找的数,输出结果并结束程序
cout << cnt << endl;
return 0;
}
}
return 0;
}
阅读全文