2017年Java方向C组第二题

标题:兴趣小组

为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小组
(以下称A组,B组,C组)。
每个小组的学生名单分别在【A.txt】,【B.txt】和【C.txt】中。(查看file\2017_Java_C_省赛文件夹)
每个文件中存储的是学生的学号。

由于工作需要,我们现在想知道:
既参加了A组,又参加了B组,但是没有参加C组的同学一共有多少人?

请你统计该数字并通过浏览器提交答案。

注意:答案是一个整数,不要提交任何多余的内容。

笨笨有话说:
哇塞!数字好多啊!一眼望过去就能发现相同的,好像没什么指望。
不过,可以排序啊,要是每个文件都是有序的,那就好多了。

歪歪有话说:
排什么序啊,这么几行数字对计算机不是太轻松了吗?
我看着需求怎么和中学学过的集合很像啊.....

解析(方案一):

Scanner in = new Scanner(System.in);
//接收三份学号名单
int[] A = new int[]{
        12894792, 92774113, 59529208, 22962224, 2991600, 83340521, 87365045, 
        40818286, 16400628, 39475245, 55933381, 76940287, 61366748, 95631228, 
        17102313, 50682833, 61562613, 87002524, 83062019, 51743442, 61977890, 
        32010762, 69680621, 87179571, 81761697, 32364296, 7833271, 36198035, 
        26588918, 84046668, 43059468, 73191775, 56794101, 454780, 11141030, 
        10008994, 35072237, 44945158, 53959980, 75758119, 18560273, 35801494, 
        42102550, 22496415, 3981786, 34593672, 13074905, 07733442, 42374678, 
        23452507, 98586743, 30771281, 17703080, 52123562, 5898131, 56698981, 
        90758589, 18238802, 18217979, 4511837, 75682969, 31135682, 55379006, 
        42224598, 98263070, 40228312, 28924663, 11580163, 25686441, 45944028, 
        96731602, 53675990, 3854194, 14858183, 16866794, 40677007, 73141512, 
        32317341, 56641725, 43123040, 15201174, 62389950, 72887083, 76860787, 
        61046319, 6923746, 17874548, 46028629, 10577743, 48747364, 5328780, 
        59855415, 60965266, 20592606, 14471207, 70896866, 46938647, 33575820, 
        53426294, 56093931, 51326542, 94050481, 80114017, 33010503, 72971538, 
        22407422, 17305672, 78974338, 93209260, 83461794, 41247821, 26118061, 
        10657376, 42198057, 15338224, 50284714, 32232841, 26716521, 76048344, 
        23676625, 62897700, 69296551, 59653393, 38704390, 48481614, 69782897, 
        26850668, 37471053, 88720989, 51010849, 94951571, 60024611, 29808329, 
        70377786, 13899299, 9683688, 58218284, 46792829, 97221709, 45286643, 
        48158629, 57367208, 26903401, 76900414, 87927040, 9926730, 1508757, 
        15101101, 62491840, 43802529
};
int[] B = new int[]{
        44894050, 34662733, 44141729, 92774113, 99208727, 91919833, 23727681, 
        10003409, 55933381, 54443275, 13584702, 96523685, 50682833, 61562613, 
        62380975, 20311684, 93200452, 23101945, 42192880, 28992561, 18460278, 
        19186537, 58465301, 01111066, 62680429, 23721241, 20277631, 91708977, 
        57514737, 3981786, 81541612, 07346443, 93154608, 19709455, 37446968, 
        17703080, 72378958, 66200696, 30610382, 89586343, 33152171, 67040930, 
        35696683, 63242065, 99948221, 96233367, 52593493, 98263070, 1418023, 
        74816705, 89375940, 58405334, 96731602, 84089545, 16866794, 94737626, 
        01673442, 70548494, 13638168, 8163691, 11106566, 64375392, 40267902, 
        897705, 56447313, 54532235, 94738425, 66642634, 83219544, 40546096, 
        66924991, 20592606, 96037590, 73434467, 70896866, 91025618, 57892091, 
        8487641, 32500082, 84412833, 23311447, 38380409, 79957822, 72971538, 
        69645784, 91863314, 73099909, 93209260, 83461794, 81378487, 30423273, 
        22233715, 32232841, 26716521, 03511221, 29196547, 58263562, 56233305, 
        52547525, 55812835, 87253244, 52484232, 80837360, 94098464, 52028151, 
        53267501, 66381929, 84381316, 59788467, 9683688, 67082008, 71605255, 
        80654064, 21434307, 45286643, 76556656, 82465821, 57367208, 79218980, 
        48460468, 59170479, 46046391, 43043164, 96544490, 83340521, 70837892, 
        18926791, 40818286, 28936302, 11489524, 51031183, 73860337, 13241219, 
        9025448, 10718828, 76360986, 26031606, 76558053, 97726139, 46473415, 
        48406387, 23625539, 86756012, 35164187, 49161302, 78082834, 35072237, 
        8602486, 29815841, 56562216, 77684187, 81751704, 20160464, 50407962, 
        27786415, 19893526, 934129, 37759498, 52636463, 25666982, 43262852, 
        38393436, 2581136, 29323250, 56950657, 5898131, 95286262, 75574581, 
        54057961, 6703896, 90758589, 57782642, 34492535, 41919697, 6395464, 
        10993500, 81212949, 34017532, 69569396, 99009936, 57129610, 67401593, 
        71044018, 62076698, 29533873, 71936325, 86874388, 26545032, 35695544, 
        30433724, 53127345, 72887083, 25390873, 63711546, 6923746, 27783723, 
        33199575, 35929698, 16491251, 18276792, 62744775, 92096155, 06336570, 
        56141974, 73007273, 31416832, 00171057, 64176982, 46938647, 58460388, 
        69972026, 73724304, 27435484, 51568616, 15531822, 47788699, 11818851, 
        41594694, 83561325, 43107163, 56965375, 10557343, 26118061, 74650126, 
        90076467, 10657376, 49901436, 03425162, 61164599, 15797769, 5427896, 
        14444084, 36795868, 18079449, 59653393, 72942548, 06763077, 33895610, 
        94892653, 12085268, 65174140, 79567366, 23020126, 74290047, 13498869, 
        21696323, 27724594, 54941003, 38229841, 7050068
};  
int[] C = new int[]{
        13404901, 39952424, 47847739, 94939581, 13809950, 70966043, 11161555, 
        17102313, 47079425, 50682833, 74154313, 61562613, 93200452, 37103342, 
        18479435, 32502597, 36198035, 54210010, 73191775, 48358178, 85544503, 
        5996766, 54651623, 52113220, 27465181, 23871783, 22496415, 54107041, 
        65899605, 56528700, 82671109, 61176034, 42374678, 51612628, 63329997, 
        56591652, 04552733, 12789324, 89586343, 51935014, 38611966, 43916409, 
        70996050, 98263070, 1418023, 65345049, 21734275, 76846198, 71506230, 
        833171, 67128139, 41367555, 64769510, 44010700, 16475199, 93164325, 
        9386162, 95324041, 80688223, 67629139, 79552617, 76219736, 50368644, 
        45096021, 54972488, 63779011, 28862942, 73145521, 74078605, 66924991, 
        12806850, 02171001, 70896866, 73434467, 8487641, 44415025, 32500082, 
        84412833, 83896188, 52243759, 49191410, 38744339, 48079796, 44937032, 
        06267501, 81866886, 38575984, 25978688, 78974338, 41247821, 12356966, 
        64842303, 79127158, 2366944, 68000570, 12426275, 96409230, 705972, 
        8266503, 83820884, 8831807, 43273308, 23216105, 29196547, 95160161, 
        05553537, 52182214, 32641346, 91553427, 24436506, 77433749, 1979664, 
        52028151, 88985343, 1761499, 76203088, 63237368, 23405334, 59788467, 
        9683688, 67755443, 29946533, 12053603, 437479, 15200030, 45286643, 
        93537527, 82465821, 57367208, 53899751, 15354933, 97760830, 68933762, 
        80220545, 1892750, 39868288, 21524323, 69716610, 65083815, 78048499, 
        3227391, 83340521, 87365045, 71720254, 51031183, 89168555, 8503028, 
        37086236, 25103057, 87002524, 22808816, 80928090, 90741678, 15993372, 
        99117082, 49938176, 21755083, 86903426, 87830263, 53959980, 75758119, 
        59781354, 58679691, 25666982, 56307643, 47180521, 62776522, 78136608, 
        44882734, 90758589, 8075999, 66303819, 23480347, 11580163, 87080118, 
        18329165, 92514163, 89404632, 92377859, 3912329, 17499963, 59699979, 
        79876366, 63894807, 37857001, 86003935, 90087123, 29433345, 80298948, 
        61531153, 61046319, 37839841, 19421134, 48747364, 35196916, 62484573, 
        59907079, 36845702, 21631642, 72739317, 26283700, 80114017, 76639390, 
        29154110, 35159758, 47788699, 11818851, 56520669, 36396767, 36031167, 
        83817428, 10657376, 90076467, 14676452, 11024560, 16327605, 76048344, 
        14444084, 95452011, 99612346, 65172562, 84813675, 88618282, 38704390, 
        27998014, 63859011, 33787505, 60024611, 16229880, 13899299, 35240335, 
        29173227, 45036451, 66177893, 82658333, 43100730, 44520187, 74290047, 
        85013538, 9926730, 27724594, 95148523, 20503000, 64390907, 26006953, 
        98116293, 97457666, 29017396, 04634371, 70791589
};
//将数组内容转换到集合中
List<Integer> listA = new ArrayList<Integer>();
List<Integer> listB = new ArrayList<Integer>();
List<Integer> listC = new ArrayList<Integer>();
for (int i = 0; i < A.length; i++) {
    listA.add(A[i]);
}
for (int i = 0; i < B.length; i++) {
    listB.add(B[i]);
}
for (int i = 0; i < C.length; i++) {
    listC.add(C[i]);
}
int count = 0;  //定义计数器记录符合条件的次数
//循环listA集合
for (int i = 0; i < listA.size(); i++) {
    int num = listA.get(i);
    if(listB.contains(num) == true && listC.contains(num) == false)
    {
        count++;
    }
}
System.out.println(count);
答案:20

解析(方案二):

由于不确定题目是否考察读文件操作,所以此版本没有将文件内容复制出来,而是采取读文件的方式读取内容。

public static String ReadFile(String path) throws IOException
{
    FileInputStream fis = new FileInputStream(path);
    int size = fis.available();
    byte[] arrTxt = new byte[size];
    fis.read(arrTxt);
    String str = new String(arrTxt);
    fis.close();
    return str;
}
public static void main(String[] args) throws IOException {
    String A = ReadFile("E:\\教学资料V3.0\\MarkDown\\003-Java基础\\04-蓝桥杯\\file\\2017_Java_C_省赛\\A.txt");
    String B = ReadFile("E:\\教学资料V3.0\\MarkDown\\003-Java基础\\04-蓝桥杯\\file\\2017_Java_C_省赛\\B.txt");
    String C = ReadFile("E:\\教学资料V3.0\\MarkDown\\003-Java基础\\04-蓝桥杯\\file\\2017_Java_C_省赛\\C.txt");
    A = A.replace(" ", "").replace("\r\n", "");
    B = B.replace(" ", "").replace("\r\n", "");
    C = C.replace(" ", "").replace("\r\n", "");
    String[] arrA = A.split(",");
    String[] arrB = B.split(",");
    String[] arrC = C.split(",");
    List<String> listA = new ArrayList<String>();
    List<String> listB = new ArrayList<String>();
    List<String> listC = new ArrayList<String>();
    for (int i = 0; i < arrA.length; i++) {
        listA.add(arrA[i]);
    }
    for (int i = 0; i < arrB.length; i++) {
        listB.add(arrB[i]);
    }
    for (int i = 0; i < arrC.length; i++) {
        listC.add(arrC[i]);
    }
    //循环listA集合
    int count = 0;
    for (int i = 0; i < listA.size(); i++) {
        String str = listA.get(i);
        if(listB.contains(str) && !listC.contains(str))
            count++;
    }
    System.out.println(count);
}
答案:20
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容

  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 1,375评论 0 6
  • 19.01_异常(异常的概述和分类) A:异常的概述异常就是Java程序在运行过程中出现的错误。 B:异常的分类通...
    冰川_阅读 407评论 0 1
  • 【脚本1】打印形状 打印等腰三角形、直角三角形、倒直角三角形、菱形 【脚本2】截取字符串 现有一个字符串如下: h...
    学无止境_9b65阅读 457评论 0 1
  • 3W1H: 1、什么是正则表达式? 作用和特殊字符一样。 正则表达式是为处理大量的字符串及文本而定义的一套规则和方...
    一起拍黄瓜阅读 273评论 0 0
  • 22.01_IO流(序列流) 1.什么是序列流序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从...
    dreamkong阅读 368评论 0 2