设计思想:因为水王的帖子多于其他人,所以两个不同的两两抵消,最后剩下的一定是水王的帖子。
代码实现:
package Zsw;
import java.util.Scanner;
public class Zshw {
static int id = 0;
static int num = 0;
static Scanner sc=new Scanner(System.in);
static int n = sc.nextInt();
public static void main(String[] args) {
int i;
int count = 0;
int[] arr= new int[n];
System.out.println("请输入总数:"+n);
System.out.println("请输入帖子id:");
for(i = 0;i < n;i++)
{
System.out.println(+arr[i]);
}
int a=deal(arr,n);
for(i = 0;i < n;i++)
{
if(arr[i] == id)
{
count++;
}
}
System.out.println("水王的id是:"+id);
}
static int deal(int arr[],int n)
{
for (int i = 0;i < n;i++)
{
if (num == 0) //当前灌水的id数量变为0或者抵消成为了0
{
num++; //灌水帖子数量+1
id = arr[i];//Id记录当前灌水Id
}
else
{
if(id == arr[i])//如果后面帖子与当前帖子Id相同则Id数量+1
num++;
else //如果不同,则抵消一个当前Id
num--;
}
}
return num;
}
}
实验截图
个人总结:
有了设计思路以后,实验就比较好做。