java List
题目
题面描述:
有一个整数序列,序列中每个元素的质因数只有2、3、5,该序列的前几个元素为1、2、3、4、5、6、8、9、10…。按惯例,1也作为序列中的元素,且是序列中的第一个元素。现在感兴趣的是,给定一个位置n(1≤n≤10000)),该序列中第n个元素是多少?
输入:
输入有若干行,每行为一个整数n,为查询的元素位置。
输出:
对每行输入,在单独的行中输出序列中对应位置的元素。
示例输入:
1
2
3
7
示例输出:
1
2
3
8
代码
import java.util.Scanner;
public class Main{
public static long min(long a, long b, long c) {
long tem = (a<b? a : b);
return (tem< c ? tem : c);
}
public static long Find(int n) {
long num[] = new long[n];
num[0] = 1;
int index2 = 0;
int index3 = 0;
int index5 = 0;
int index = 1;
while (index < n) {
long val = min(num[index2]*2, num[index3]*3, num[index5]*5);
if (val == num[index2]*2) ++index2;
if (val == num[index3]*3) ++index3;
if (val == num[index5]*5) ++index5;
num[index++] = val;
}
return num[n - 1];
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (scan.hasNextInt()) {
System.out.println(Find(scan.nextInt()));
}
}
}
来源:CSDN
作者:农村娃的成长之路
链接:https://blog.csdn.net/weixin_44135909/article/details/104312432