课下作业

设计思路:

如果每次删除四个不同的ID(不管是否包含发帖数目超过总数1/4的ID),那么,在剩下的ID列表中,原先发帖比例大于1/4的ID所占比例仍然大于1/4。可以通过不断重复这个过程,把ID列表中的ID总数降低(转化为更小的问题),从而得到问题的答案。

代码:

package ceshi;

import java.util.Scanner;

public class Test {
       
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in= new Scanner(System.in);
        int temp[]=new int[3];    //计数器
        temp[0]=temp[1]=temp[2]=0;
        int water[]=new int[3]; //假设三个水王的ID为ID(0)、ID(1)、ID(2)
        water[0]=water[1]=water[2]=0;
        System.out.println("请输入帖子的总数");
        int sum=in.nextInt();
        int id[]=new int[sum];
        System.out.println("请输入id");
        for(int i=0;i<sum;i++)
        {
            id[i]=in.nextInt();
        }
        //计算  
        for(int i=0;i<sum;i++)
        {
             if(temp[0]==0 )
             {
                 temp[0]++;
                 water[0]=id[i];
             }
             else if(temp[1]==0 )
             {
                 temp[1]++;
                 water[1]=id[i];
             }
             else if(temp[2]==0 )
             {
                 temp[2]++;
                 water[2]=id[i];
             }    
             else if(id[i]==water[0])
             {
                 temp[0]++;
             }
             else if(id[i]==water[1])
             {
                 temp[1]++;
             }
             else if(id[i]==water[2])
             {
                 temp[2]++;
             }  
             else
             {
                temp[0]--;
                 temp[1]--;
                 temp[2]--;
             }
        }
        System.out.println("水王为:");
        for(int i=0;i<3;i++)
        {     
        System.out.print(water[i]+" ");
        }
       
    }

}

截图:

总结:

在这次的写水王的任务中和上次的鞋水王中,我发现两次的思路写法差不多,只不过是在我们的产生的数据是那个不同:让我理解到我们如果不会一个程序,我们应该先将它简化成简单的,我们易懂的程序,慢慢地找出它的规律。

原文地址:https://www.cnblogs.com/syhn/p/5528713.html