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

    技术2022-07-11  79

    题目:

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

    输入格式:

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

    输出格式:

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

    输入样例:

    2017

    输出样例:

    1480

    代码:

    #include<iostream> using namespace std; int main(){ int N; cin >> N; int a[N] = {0}; a[0] = 1/2+1/3+1/5; int count = 1; int teq, j; for(int i=2;i <= N;i++){ teq = i/2+i/3+i/5; for(j=0;j < count;j++){ if(a[j] == teq){ break; } } if(j == count){ a[count] = teq; count++; } } cout << count << endl; } /*#include<iostream> #include<map> using namespace std; int main() { int N; cin >> N; map<int, int> mp; for(int i=1; i <= N; i++) { mp[i/2+i/3+i/5]++; } cout << mp.size() << endl; }*/ /*#include<iostream> #include<set> using namespace std; int main() { int N; cin >> N; set<int> s; for(int i=1; i <= N; i++) { s.insert(i/2 + i/3 + i/5); } //set插入不同值,size也就是不同值的个数 cout << s.size() << endl; }*/

     

    Processed: 0.014, SQL: 10