[COCI2006-2007#1] Modulo

[COCI2006-2007#1] Modulo

题面翻译

给出 10 10 10 个整数,问这些整数除以 42 42 42 后得到的余数有多少种。

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

题目描述

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

1
2
3
4
5
6
7
8
9
10

样例输出 #1

10

样例 #2

样例输入 #2

42
84
252
420
840
126
42
84
420
126

样例输出 #2

1

样例 #3

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

代码实现:

#include<iostream>
#include<cmath>
#include<cstring>
#define ll long long
using namespace std;
bool a[42];
int main() {
	int sum = 0;
	int x;
	memset(a, 0, sizeof(a));//清空数组
	for (int i = 0; i < 10; i++) {
		cin >> x;
		a[x % 42] = 1;//bool型只要能被42整除就设为1,不是则为0.true与false
	}
	for (int i = 0; i < 42; i++)
	{
		if (a[i])
			sum++;
	}
	cout << sum << endl;
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值