专栏首页卡尼慕1087 有多少不同的值 (20 分)

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

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

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

输入格式:

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

输出格式:

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

输入样例:

2017

输出样例:

1480

【我的代码】

 1#include <iostream>
 2#include <map>
 3using namespace std;
 4int a[100005];
 5int main(){
 6    int N;
 7    cin>>N;
 8    for(int i = 1; i <= N; i++){
 9        double tmp = (i/2)+(i/3)+(i/5);
10        int index = (int) tmp;
11        a[index]++;
12    }
13    int count = 0;
14    for(int i =0; i < 100005; i++){
15        if(a[i] != 0){
16            count++;
17        }
18    }
19    cout<<count;
20    return 0;
21}

【思路】

本题难度不大,要注意的是空间开的范围要注意点,过大可能会导致段错误。然后注意一下,本题要求的是取整数部分,也就是最后要需要把double转换成int类型即可。然后遍历一次,进行统计即可。

【学习】

这里引入一下网上优秀的代码,好像时间和空间方面确确实实比我的要好很多。这里使用了map来进行一个索引的映射。最开始我也是想这么写的。。有时候还是要相信下自己!

 1#include <bits/stdc++.h>
 2using namespace std;
 3int main()
 4{
 5    int n;
 6    map<int, int> mp;
 7    cin >> n;
 8    for(int i = 1; i <= n; ++i){
 9        mp[i / 2 + i / 3 + i / 5] ++;
10    }
11    cout << mp.size() << endl;
12    return 0;
13}

本文分享自微信公众号 - 卡尼慕(gh_40138f7dc7d3),作者:卡尼幕

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1061 判断题 (15 分)

    可爱见见
  • 1072 开学寄语 (20 分)

    可爱见见
  • 1073 多选题常见计分法 (20 分)

    可爱见见
  • 挑战程序竞赛系列(21):3.2反转

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    用户1147447
  • leetcode题解 | 78. 子集

    这个题目很容易想到使用DFS的方式来解决,因为组合的题容易产生转移方程,这样也是没有什么问题的。

    ACM算法日常
  • 【hihocoder 1424】 Asa's Chess Problem(有源汇上下界网络流)

    饶文津
  • 【POJ 3321】Apple Tree

    有n个节点以1为根节点的树,给你树的边关系u-v,一开始每个节点都有一个苹果,接下来有两种操作,C x改变节点x的苹果状态,Q x查询x为根的树的所有苹果个数。

    饶文津
  • 「AtCoder Grand018B」Sports Festival(暴力)

    饶文津
  • 洛谷P4180 [Beijing2010组队]次小生成树Tree

    题目描述 小C最近学了很多最小生成树的算法,Prim算法、Kurskal算法、消圈算法等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无...

    attack
  • 次小生成树

    次小生成树 次小生成树 我们已经熟知了求最小生成树的方法,用kruskal,prim算法都可以搞 那么我们如何求次小生成树呢? 这里次小生成树的定义是 边...

    attack

扫码关注云+社区

领取腾讯云代金券