C语言编程练习23:美丽数

题目描述

小明很喜欢3和5这两个数字,他将能被3或5整除的数叫做美丽数。现在给你一个整数N(1<=N<=100000),你能告诉小明第N个美丽数是多少吗?

输入

输入包含多组测试数据。每组输入一个整数N(1<=N<=100000)。

输出

对于每组输入,输出第N个美丽数。

样例输入 Copy

1
2
3
4

样例输出 Copy

3
5
6
9

思路:乍一看,这不弱智题吗?结果唰唰写了代码AC不过,超时,我是弱智,无法反驳。
于是先把所有美丽数找出来存在数组里,找的时候直接根据数组下标找,大大减少时间、
#include <iostream>

using namespace std;

int main()
{
    int n;
    int a[100005];
    int c=1;//计数
    for(int i = 1;;i++)
    {
        if(i%3==0||i%5==0)
        {
            a[c++]=i;
        }
        if(c>100001)
        {
            break;
        }
    }
    while(scanf("%d",&n)!=EOF)
    {
        printf("%d
",a[n]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/FantasticDoubleFish/p/14319041.html