题目描述:
下面的图形是著名的杨辉三角形:
如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下
数列:
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);}
}