要求:
一、设计思想
水王的特点为:(1)每贴必回(2)水王的发贴数超过总贴数的一半;
利用对子思想来解决水王问题。从头开始遍历,从第一个人的ID开始,进行比对,如果相同就对数量进行增加,如果不同,就对数量减一,如果为零就重新选择水王,由于水王的帖子最多且大于一半,所以最后剩下的一定就是水王。
二、代码实现
package YunSuan;
import java.util.Scanner;
/*
* 寻找水王
*/
public class ShuiWang {
public static void main(String[] args) {
int[] a = null;//存储帖子id
Scanner sc = new Scanner(System.in);
System.out.println("帖子总个数:");
int sum = sc.nextInt();
a = new int[sum];
System.out.println("输入每个帖子的作者:");
for(int i = 0;i < sum;i++)
{
a[i] = sc.nextInt();
}
sc.close();
int n = 0;
int id = -1;
for(int i=0;i<a.length;i++)
{
if(n==0)
{
id=a[i];
n=2;
}
else
{
if(id==a[i])
{
++n;
}
else
{
--n;
}
}
}
System.out.println("水王的ID是 : " + id);
}
}
三、实现截图
四、个人总结
通过此次作业,感受到任何程序都要用脑去思考,有自己的思想,思路,如果思路正确,那么程序就很容易书写,以后应该多培养自己的逻辑思维能力。