设计一个整形三角形,三角形的每一行都比上一行多出一个数,每个数都等于它上方(如果有的话)与左上方两个数字之和,如下面所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
。。。。。。
现在给你一个数,请算出它最开始出现在第几行。
输入:
一个正长整型数,保证为长整型的整数
输出:
这个数最开始出现的行数
样例输入:
1
4
10
样例输出:
1
5
6
代码:
import java.util.Scanner;
public class YHTriangle {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int[] a = new int[n+2];
int pre=1;
for(int i=1;i<=n+1;i++)
{
for(int j=1;j<=i+1;j++)
{
int cur=a[j];
a[j]=pre+cur;
pre=cur;
if(a[j]==n){
System.out.println(i);
return;
}
}
}
}
}