时间限制: 5.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
下面的图形是著名的杨辉三角形:
如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下
数列:
1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, …
给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?
【输入格式】
输入一个整数 N。
【输出格式】
输出一个整数代表答案。
【样例输入】
6
【样例输出】
13
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ N ≤ 10;
对于所有评测用例,1 ≤ N ≤ 1000000000。
话不多说,直接上代码:
import java.util.Scanner;
public class 杨辉三角形 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int [][] a = new int[n][n];
if(n == 1) {
System.out.println(1);
}
int count = 0;
for(int i=0;i<n;i++) {
for (int j = 0; j <= i; j++) {
count++;
if( i == j) {
a[i][j] = 1;
}
if(j == 0) {
a[i][j] = 1;
}
if(i>0 && j>0) {
a[i][j] = a[i-1][j-1]+a[i-1][j];
if(a[i][j] == n) {
System.out.println(count);
return;
}
}
}
}
}
}