蓝桥--杨辉三角形
Posted 上山打老虎D
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥--杨辉三角形相关的知识,希望对你有一定的参考价值。
【题目描述】
下面的图形为著名的杨辉三角形
如果我们按从上到下,从左到右的顺序把所有数排成一列,可以得到如下数列:
1 , 1 , 1 , 1 , 2 , 1 , 1 , 3 , 3 , 1 , 1 , 4 , 6 , 4 , 6 , 1...... 1,1,1,1,2,1,1,3,3,1,1,4,6,4,6,1...... 1,1,1,1,2,1,1,3,3,1,1,4,6,4,6,1......
给定一个正整数N,求出N第一次出现是在第几个数?
1
<
=
N
<
=
1
0
9
1<=N<=10^9
1<=N<=109
【输入】
数字n
【输出】
N第一次出现的位置(从1开始计算)
【样例输入】
6
【样例输出】
13
【参考代码】
#include<algorithm>
#include<iostream>
typedef long long ll;
using namespace std;
int N;
ll combine(int n, int m)
ll ans = 1;
for (int i = 0; i < m; i++)
ans *= (n - i);
ans /= (i + 1);
if (ans > N)
return ans;
return ans;
bool f(int k)
int l = 2 * k, r = max(N, l);
while (l < r)
int mid = (l + r) >> 1;
if (combine(mid, k) >= N)
r = mid;
else
l = mid + 1;
if (combine(r, k) == N)
cout << 1ll * (r + 1) * r / 2 + k + 1 << endl;
return true;
else
return false;
int main()
cin >> N;
if (N == 1)
cout << "1" << endl;
else
for (int i = 17; i > 0; i--)
if (f(i))
break;
return 0;
以上是关于蓝桥--杨辉三角形的主要内容,如果未能解决你的问题,请参考以下文章