随更

image.png
//我的大致思路就是找规律,因为数据比较死,感觉可以尝试直接算,其实某一个数当作是c的话,就可以得出一个大致的“n”,这个n和位置的关系就比较大了
public static void main(String[] args) {
        int c= 6;
        int i= 2;
        System.out.println((Math.sqrt(8*c+1)-1)/2+1-Math.ceil((Math.sqrt(8*i+1)-1)/2));
 }

还有一个其他人提出的想法。不想算,用二分找接新的值:
y²−y≤2x≤y²+y,x为输入的数字,y代表在第几行,(n-(y-1))即为所求。例如输入的为8,y算出来为4,则a等于n-(4-1),n-3也就是。算y的过程可以用二分

你可能感兴趣的:(随更)