课堂作业之寻找水王
Posted 一路清香
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课堂作业之寻找水王相关的知识,希望对你有一定的参考价值。
一、题目
有一个大“水王”,他不仅喜欢发贴,还会回复其他ID发的每个帖子。该“水王”发帖数目超过了帖子总数的一半。如果有当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的水王吗?
二、设计思想
“水王”最不怕删帖,因为他的帖子数量超过总数的一半,那么我们可以从第二个依次与上一个比较,相同的ID留下,不同的ID消除。
三、代码
package demo; import java.util.Scanner; public class FindActive { public static void main(String []args){ Scanner sc=new Scanner(System.in); System.out.print("请输入ID的个数:"); int num=sc.nextInt(); //保证输入的数合法 while(true){ if(num<=0){ System.out.print("输入的不合法!请重新输入:"); num=sc.nextInt(); } else break; } int [] arr=new int[num];//将ID号存放在数组中 int i,ii; //输入所有ID号 for(i=0;i<num;i++){ ii=i+1; System.out.print("请输入第"+ii+"个ID号:"); arr[i]=sc.nextInt(); } int king=findTheMostActive(arr,num); System.out.println("水王的ID为"+king); } public static int findTheMostActive(int array[],int len){ int king=array[0]; int t=1; for(int i=1;i<len;i++){ if(king!=array[i]){ t=t-1; if(t<=0){ king=array[i+1]; t=1; i++; } } else{ king=array[i]; t=t+1; } } return king; } }
四、结果
以上是关于课堂作业之寻找水王的主要内容,如果未能解决你的问题,请参考以下文章