洛谷P4325

题目

原题地址
题意翻译
描述

给出10个整数,问这些整数%42后有多少个不同的余数。 输入

输入包含10个小于1000的非负整数,每行一个。 输出

输出它们%42后,有多少个不同的余数。 说明

第一个样例的十个结果是1,2,3,4,5,6,7,8,9,10,有10个不同的结果;第二个样例结果都是0,只有一个不同的结果;第三个样例余数是39,40,41,0,1,2,40,41,0,1,有0,1,2,39,40,41这六个不同的结果。

感谢@ACdreamer 提供的翻译

注明:%42为除以42取余

题目描述
Given two integers A and B, A modulo B is the remainder when dividing A by B. For example, the numbers 7, 14, 27 and 38 become 1, 2, 0 and 2, modulo 3. Write a program that accepts 10 numbers as input and outputs the number of distinct numbers in the input, if the numbers are considered modulo 42.

输入输出格式
输入格式:
The input will contain 10 non-negative integers, each smaller than 1000, one per line.

输出格式:
Output the number of distinct values when considered modulo 42 on a single line.

输入输出样例
输入样例#1:
1
2
3
4
5
6
7
8
9
10
输出样例#1:
10
输入样例#2:
42
84
252
420
840
126
42
84
420
126
输出样例#2:
1
输入样例#3:
39
40
41
42
43
44
82
83
84
85
输出样例#3:
6
说明
In the first example, the numbers modulo 42 are 1, 2, 3, 4, 5, 6, 7, 8, 9 and 10. In the second example all numbers modulo 42 are 0. In the third example, the numbers modulo 42 are 39, 40, 41, 0, 1, 2, 40, 41, 0 and 1. There are 6 distinct numbers.

题解

不需要离线,每读取一个数对其%42然后把结果放在一个set里就可以自动去重,结果打印set的大小即可。

代码

#include <iostream>
#include <set>
using namespace std;
int main(int argc, const char * argv[]) {
    int num;
    set<int> OUTPUT;
    for(int count = 0; count < 10; count++){
        cin >> num;
        OUTPUT.insert(num%42);
    }
    cout << OUTPUT.size() << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/SuzumiyaSAMA/article/details/80053345