1087 有多少不同的值 (20分)

题目

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

输入格式

输入给出一个正整数 N(2≤N≤10^4)。

输出格式

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

输入样例

2017

输出样例

1480

解析

  count表示不同数个数,用数组s标记某个数是否出现过,若a没有出现过(s[a] == 0),则令s[a] = 1,count ++,

答案

#include<iostream>
#include<iostream>

using namespace std;

int s[100001];
int main(){
    int N,count = 0;
    cin >> N;
    for(int i = 1 ; i <= N ; i ++){
        int a = i / 2 + i / 3 + i / 5;
        if(!s[a]){
            s[a] = 1;
            count ++;
        }
    }
    cout << count << endl;
}
posted @ 2020-08-08 15:36  小马小马最可爱  阅读(128)  评论(0)    收藏  举报