小明很喜欢3和5这两个数字,他将能被3或5整除的数叫做美丽数。现在给你一个整数N(1<=N<=100000),你能告诉小明第N个美丽数是多少吗?
输入格式
输入包含多组测试数据。每组输入一个整数N(1<=N<=100000)。
输出
对于每组输入,输出第N个美丽数。
样例输入
1
2
3
4
样例输出
3
5
6
9
为什么说我是时间超限了
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
ArrayList list = new ArrayList();
while(input.hasNextInt()){
int N=input.nextInt();
list.add(N);
}
Integer[] array = (Integer[])list.toArray(new Integer[list.size()]);
Arrays.sort(array);
int maxNum = 0;//获取最大需要的数值
maxNum = array[array.length-1]*3;//按3的倍数估算,最大需要该数值
int num=0;
int cnt =0;
while(num<=maxNum&&cnt<array[array.length-1]){
num++;//步长还是可以优化的。没必要每次都是+1
if(num%3==0 || num%5==0){
cnt++;
if(list.contains(cnt)){
System.out.println(num);
}
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。