whenever

  • Home

  • Tags21

  • Categories6

  • Archives122

  • About

PAT乙级1087 || 有多少不同的值(详解,C/C++示例,测试点分析)

Posted on 2019-12-30 In PAT

有多少不同的值

题目描述

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

输入格式

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

输出格式

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

输入样例

1
2017

输出样例

1
1480

问题解决

解题思想

本题使用map容器来处理将非常简单,遍历从1到N,每个数按题给算式计算一次,并作为map容器的键,最后map的大小即为不同值的个数。

代码示例(C/C++)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <map>

using namespace std;

map <int, bool> mp;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
int tmp = i / 2 + i / 3 + i / 5;
mp[tmp] = true;
}
cout << mp.size();
return 0;
}

题目来源:PAT乙级1087
作者:CHEN, Yue
单位:浙江大学

稀罕作者
Mengzhao Wang WeChat Pay

WeChat Pay

Mengzhao Wang Alipay

Alipay

# C/C++ # PAT # 编程
PAT乙级1086 || 就不告诉你(详解,C/C++示例,测试点分析)
PAT乙级1088 || 三人行(详解,C/C++示例,测试点分析)
  • Table of Contents
  • Overview
Mengzhao Wang

Mengzhao Wang

Try? All the way !
122 posts
6 categories
21 tags
  1. 1. 有多少不同的值
    1. 1.1. 题目描述
    2. 1.2. 输入格式
    3. 1.3. 输出格式
    4. 1.4. 输入样例
    5. 1.5. 输出样例
    6. 1.6. 问题解决
      1. 1.6.1. 解题思想
      2. 1.6.2. 代码示例(C/C++)
© 2021 Mengzhao Wang