【问题描述】
下图是著名的杨辉三角 。
图片
如果按从上到下、从左到右的顺序把所有数排成一列,则可以得到如下数列:1,1,1,1,2,1,3,3,1,1,4,6,4,1,1,5,10,10,5,1…… 给定一个正整数N,请你输出数列中N第一次出现是在第几个数的位置?
[输入格式]
输入一个整数N。
[输出格式]
输出一个整数,代表答案。
[样例输 入]
6
[样例输出]
13
[样例输 入]
2
[样例输出]
5
0#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
//定义一个9行9列的二维整型数组
int data[9][9];
int i = 0;
int j = 0;
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9; j++)
{
//数组所有元素都赋值为1
data[i][j] = 1;
}
}
//dp
for (i = 1; i < 9; i++)
{
for (j = 1; j < i; j++)
{
data[i][j] = data[i - 1][j] + data[i - 1][j - 1];
}
}
//输出数组所有元素
for (i = 0; i < 9; i++)
{
for (j = 0; j <= i; j++)
{
cout<<data[i][j];
}
cout<<" "<<endl;
}
int n,sum1=0;
cin>>n;
if(n==data[i][j])
{
for(int k=1;k<=i-1;k++)
{
sum1+=k;
}
cout<<sum1;
}
cout<<sum1+j<<endl;
return 0;
}