洛谷-P4325 [COCI2006-2007#1] Modulo

洛谷-P4325 [COCI2006-2007#1] Modulo

原题链接:https://www.luogu.com.cn/problem/P4325


题目描述

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.

题意翻译

描述

给出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取余

输入输出样例

输入 #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.

C++代码

#include <iostream>
using namespace std;

int main() {
    int a[10], b[42]={0}, ans=0;
    for (int i=0; i<10; ++i)
        cin >> a[i];
    for (int i=0; i<10; ++i)
        b[a[i]%42] = 1;
    for (int i=0; i<42; ++i)
        ans += b[i];
    cout << ans << endl;
    return 0;
}
posted @ 2021-01-25 15:51  yuzec  阅读(164)  评论(0编辑  收藏  举报