开发者社区> 问答> 正文

求美丽数

小明很喜欢3和5这两个数字,他将能被3或5整除的数叫做美丽数。现在给你一个整数N(1<=N<=100000),你能告诉小明第N个美丽数是多少吗?
输入格式
输入包含多组测试数据。每组输入一个整数N(1<=N<=100000)。
输出
对于每组输入,输出第N个美丽数。
样例输入
1
2
3
4
样例输出
3
5
6
9
screenshot
为什么说我是时间超限了

展开
收起
蛮大人123 2016-02-21 17:24:53 2820 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
     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);
                    }
                }
            }
        }
    2019-07-17 18:46:11
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载