【编程题目 |200分】 数据分类【2022 Q1,Q2 考试题 2023 Q2, Q3考试题 B卷】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
【数据分类】
对一个数据a进行分类,分类方法为:
此数据a(四个字节大小)的四个字节相加对一个给定的值b取模,如果得到的结果小于一个给定的值c,则数据a为有效类型,其类型为取模的值;如果得到的结果大于或者等于c,则数据a为无效类型。
比如一个数据a=0x01010101,b=3,按照分类方法计算(0x01+0x01+0x01+0x01)%3=1,
所以如果c=2,则此a为有效类型,其类型为1,如果c=1,则此a为无效类型;
又比如一个数据a=0x01010103,b=3,按照分类方法计算(0x01+0x01+0x01+0x03)%3=0,
所以如果c=2,则此a为有效类型,其类型为0,如果c=0,则此a为无效类型。
输入12个数据,第一个数据为c,第二个数据为b,剩余10个数据为需要分类的数据,
请找到有效类型中包含数据最多的类型,并输出该类型含有多少个数据。
代码实现
C
#include <stdio.h> #include <stdint.h> #define CEILING_POS(X) ((X-(int)(X)) > 0 ? (int)(X+1) : (int)(X)) #define CEILING_NEG(X) ((X-(int)(X)) < 0 ? (int)(X-1) : (int)(X)) #define CEILING(X) ( ((X) > 0) ? CEILING_POS(X) : CEILING_NEG(X) )
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看C++解法一
#include <bits/stdc++.h> using namespace std; void init() { ios::sync_with_stdio(false); cin.tie(nullptr); }
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看C++解法二
#include<bits/stdc++.h> using namespace std;
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] input = sc.nextLine().split(" "); int c1 = Integer.parseInt(input[0]); int b1 = Integer.parseInt(input[1]); int[] arr = new int[b1 - 1];
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int c = in.nextInt(), b = in.nextInt();
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看Python
if __name__ == "__main__": nums = list(map(int, input().split()))
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看