版权声明:博客内容为本人自己所写,请勿转载。 https://blog.csdn.net/weixin_42805929/article/details/82789993
无限数列求第n项 java
题目描述:
有一个无限长的数字序列:1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,……(数字k在序列中正好出现k次)。想知道这个数字序列的第n项是多少?
输入:
输入包括一个整数n(1 <= n <= {10}^{18})
输出:
输出一个整数,即数字序列的第n项。
样例输入:
169
样例输出:
18
代码:
import java.util.*;
public class Main22 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
tt(a);
}
public static void tt(int a) {
int sum = 0;
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <= a && sum < a; i++) {
for (int j = 0; j < i; j++) {
list.add(i);
}
sum = sum + i;
if(sum == a) {
break;
}
}
for (int i = 0; i < list.size(); i++) {
if(i == a-1) {
System.out.println(list.get(i));
}
}
}
}