还是错了一个不知道是哪个。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
//输入一个数 返回它在杨辉三角里第一次出现的位置
//未解决
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long a=scan.nextInt();
Main.yanghuisanjiao(a);
}
public static void yanghuisanjiao(long k){
if (k==1) {System.out.println(1);
return ;
}
long[] []arr;
arr=new long[100][];//动态创建二维数组
List list=new ArrayList();
for (int i = 0; i < 100; i++) {
arr[i]=new long[i+1];//给第i行的数组赋长度
arr[i][0]=1;//给所有第一列的数赋值
list.add(1);//把所有的1存入列表
for (int j =1 ; j <=i; j++) {
if(j==i){//如果在每行数组的最右边就赋值为1
arr[i][j]=1;
list.add(1);
}else {
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];//杨辉三角特性:下面的数字等于上面两个数字之和
list.add( arr[i][j]);//存入列表
}
}
}
if((list.indexOf(k)+1)==0) {//如果在第100行以内没有找到的话就在第二斜列寻找 符合等差数列
System.out.println(k+2+(k*(k-1))/2);
}else
System.out.println(list.indexOf(k)+1);
}
}