PAT乙级 | 1087 有多少不同的值 (20分)

    科技2022-08-12  98

    当自然数 n 依次取 1、2、3、……、N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分。)

    输入格式:

    输入给出一个正整数 N(2≤N≤104)。

    输出格式:

    在一行中输出题面中算式取到的不同值的个数。

    输入样例:

    2017

    输出样例:

    1480

    思路:用哈希表存放值,用cnt对不同值进行统计,如果该值未出现则cnt++

    #include <iostream> using namespace std; int main() { int n,cnt=0; bool hash[20000]={0}; cin >>n; for(int i=1;i<=n;i++){ int tmp=i/2+i/3+i/5; if(!hash[tmp]){ hash[tmp]=true; cnt++; } } cout <<cnt; return 0; }
    Processed: 0.018, SQL: 8