课堂练习(水王扩展)

设计思想:

跟上次实验类似,也是利用相消的思想,不同的是这次是先确定三个ID,他们之间不进行相消,最后剩下的三个ID即为三个小水王;

代码:

package text;
import java.util.Scanner;
public class text_y {
    public static void main(String[] args){
         Scanner in=new Scanner(System.in);
         int N;
         System.out.println("请输入帖子的总数:");
         N=in.nextInt();
         String list[]=new String[N];
         int i;
         System.out.println("请输入ID:");
         for(i=0;i<N;i++)
         {
             list[i]=in.next();
         }
         int j[]=new int[3];//利用J为每个水王的便利进行标记
         j[0]=j[1]=j[2]=0;
         String ID[]=new String[3];//设定单个水王ID
         for(i=0;i<N-1;i++)
         {
             if(j[0]==0)//当计数器为0时,重新赋予水王ID
             {
                 j[0]++;
                 ID[0]=list[i];
             }
             else if(j[1]==0)
             {
                 j[1]++;
                 ID[1]=list[i];
             }
             else if(j[2]==0)
             {
                 j[2]++;
                 ID[2]=list[i];
             }

             else if(list[i].equals(ID[0]))//相同ID时计数器增加
             {
                 j[0]++;
             }
             else if(list[i].equals(ID[1]))
             {
                 j[1]++;
             }
             else if(list[i].equals(ID[2]))
             {
                 j[2]++;
             }

             else//不同ID时因两两相消计数器减小
             {
                 j[0]--;
                 j[1]--;
                 j[2]--;
             }
         }
         System.out.println("三个水王分别是是:"+ID[0]+"   "+ID[1]+"   "+ID[2]);
         in.close();
      }
}

结果截图:

个人总结:

因为设计思想跟上次类似,所以理好思路后还是很好做的。

时间: 2024-08-27 10:39:24

课堂练习(水王扩展)的相关文章

课堂练习----水王程序

一.题目要求 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 二.设计思想 水王问题就是根据消消乐游戏的一个变形,消消乐是消除相同的图案,而找出水王则是删掉相邻的不同的ID,由于“水王”发帖数目超过了帖子数目的一半,这样剩下的ID一定是水王的ID.这样

课堂练习之扩展每天30道四则运算题----思路

补充:1.题目避免重复:2.可定制(数量/打印方式):3.可以控制下列参数(是否有乘除法,是否有括号,数值范围,加减有无负数,除法有无余数.是否支持分数(真分数,假分数)):设计思路:(是否有乘除法)可以将要打印的题目数量用输入的方式进行输入,定义成循环的次数.在选则时,0.1是加法,2.3是减法,4.5是乘法,6.7是除法,在自定义选择要输出哪个运算符号时,就将该数字选择到那个范围.(是否有括号)(数值的范围)可以直接通过修改产生随机数的倍数,就可以修改数值的范围.(加减有无负数)如果需要负数

第0道作业

拜读多篇博客后感 博客D[1]中对于作者提出的"做好短期时间规划.具体而言,要把每天把要做的事情分成A.B.C.D四类: A--紧迫且重要:B--重要不紧迫:C--紧迫不重要:D--不重要不紧迫. ",首先,我同意作者将事情划分的观点,但我更喜欢做的是将每天的事情按不同时段划分,根据所要完成事情的时间期限来完成,时间期限先的先做.同时对于作者简述的"骑单车的故事 "深有体会,成长历程中都是在时刻调整方向,才能顺利前进.大一.大二时候迷迷糊糊,每天似乎都很忙,却不知道

课堂练习--“找水王续&quot;

设计思路: ①跟上次思路一样,将问题简化成从一个数组中找出出现次数最多的3个数. ②将“两两相消"的思路模式,变成“三一相消” ③初始化time为零,kingid为零,然后按顺序赋值,遇到跟kingid1相同的time1+1,其余两个同样:遇到跟三个都不同的所有time-1. 代码: import java.util.*; public class Findthreenum { public static void main(String[] args) { Scanner input = ne

课堂练习之找“水王”

一.题目要求 现有一个灌水论坛,信息学院的学生都喜欢在上面交流灌水.传说在论坛上有一个“水王”,它不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目已超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者ID在其中,请设计算法快速找到这个传说中的“水王”. 二.设计思路 设计思路还没想明白..只能看一下同学的思路了.. 程序的设计思路大体就是,首先设2个变量,将第一个数暂时给shuiwang这个变量并且和下一个数比较,如果相同则用一个X变量自加一,

课堂练习-找水王绪

题目:三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半.       如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?(参考核心代码)       随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 思路: 参考

软件工程课堂作业(十五)——揪出“水王”续

一.题目: 随着论坛的发展,管理员发现“水王”没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了总和的1/4.请设计算法从列表中快速找到他们. 二.设计思路: 扩展题目和原题基本相似,方法是一样的,都可用消除思想.可以三个比较,若不相同,则删除,若相同,则计数器加一. 三.源代码: 1 //找小“水王”——胡亚宝——2015/04/26 2 3 #include "stdafx.h" 4 #include"iostream" 5 6 7 8

水王(课堂作业)

题目: 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个"水王",他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该"水王"发帖数目超过了帖子数目的一半.如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 思路:因为考虑到水王发的帖子数量超过了半数,所以可以按顺序将每个帖子的ID每两个作比较,如果相同,则留下,如果不相同,则同时删除两个ID. 代码: public cla

课堂练习------寻找水王

•三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 1 #include<iostream.h> 2 int main() 3 { 4 int water; 5 int a[10]={1,5,2,5,3,5,4,5,5,5}; 6 int j,k=1