题目:
时间限制: 5.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
(图8)图形是著名的杨辉三角形:
如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下
数列:
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。
分析:
求这个数字多少在杨辉三角的第多少项,首先先建立,二维数组用来储存杨辉三角,只要有一项不为0,sum++,最终只要有一项等于n,输出sum
步骤:
![](https://img-blog.csdnimg.cn/img_convert/0e53e104d40f722ff8a199d43811bad9.png)
package 第十二届省赛;
import java.util.Scanner;
public class 杨辉三角n在第几项 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int zu[][]=new int [n][n];
zu[0][0]=1;
int sum=0;;
for (int i = 1; i < zu.length; i++) {
for (int j = 1; j < zu[i].length; j++) {
zu[i][j]=zu[i-1][j]+zu[i-1][j-1];
if (zu[i][j]!=0) {
sum++;
}
if (zu[i][j]==n) {
System.out.println(sum);
return;
}
}
}
}
}