题目描述:
下面的图形是著名的杨辉三角形:
如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下
数列:
1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, ...
给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?
代码:
package lanqiao;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
long[] arr = new long[50005];
long k = 1;
arr[0] = 1;
if(n == 1){
System.out.println(1);
return;
}
for(int i = 1;i <= 50000;i ++){
for(int j = i;j >= 1;j --){
arr[j] += arr[j - 1];
if(arr[j] == n){
System.out.println(k + i - j + 1);
return;
}
}
k += (i + 1);
}
System.out.println(((1 + n) * n / 2) + 2);
}
}