集五福

weixin_42925339發表於2021-01-01

題目描述:

集五福作為近年來⼤家喜聞樂⻅迎新春活動,集合愛國福、富強福、和諧福、友善福、敬業福即可分享超⼤紅包
以0和1組成的⻓度為5的字串代表每個⼈所得到的福卡,每⼀位代表⼀種福卡,1表示已經獲得該福卡,單型別福卡不超過1張,隨機抽取⼀個不超過10⼈團隊,求 :該團隊最多可以集⻬多少套五福
輸入描述:
輸⼊類似11010,00110,由0、1組成的⻓度為5的字串,代表指定團隊中每個⼈福卡獲得情況 注 意1:1⼈也可以是⼀個團隊
注意2:多⼈之間的福卡以英⽂逗號隔開
輸出描述:
輸出該團隊能湊⻬多少套五福
示例1:
輸入:
11001,11100
輸出:
0



import java.io.IOException;
import java.util.*;

public class Test {
    public static void main(String[] args)throws IOException {


        Scanner sc = new Scanner(System.in);

        // 1、控制檯輸入每個人的福卡獲得情況
        String s = sc.nextLine();

        // 2、判斷輸入是否為空
        if(s.length() == 0) {
            System.out.println("團隊不能為空");
            return ;
        }

        // 3、統計團隊人數
        String [] strArr = s.split(",");
        System.out.println(Arrays.toString(strArr));
        int strArrLen = strArr.length;

        // 4、判斷輸入的是否合理
        //     4.1 團隊是否大於10人
        if(strArrLen >10){
            System.out.println("團隊不能大於10");
        }
         //   4.2 存放所有人每種福卡的數量,共有5種,所以長度為5
         int[] tempCount = new int[5];

         // 5、統計所有人的每種型別的福卡總數,外層迴圈為福卡的型別
         for(int i=0; i<5; i++){
         //  5.1 內迴圈為每個人擁有的五張福卡
             for (String s1 : strArr) {
                 //  5.2 如果一個人沒有5種型別的福卡,結束
                 if(s1.length()!=5){
                    System.out.println("您輸入的福卡" + s1 + "型別不正確,請重新輸入");
                     return ;
                 }
                 // 5.3 每個人獲取每種型別的福卡數量是否等於0或者1,都不是則結束
                 else if  ( s1.charAt(i)!='0' && s1.charAt(i) != '1'){
                     System.out.println("您輸入的福卡" + s1 + "張數不正確,請重新輸入");
                     return;
                   
                 //  5.4 否則把每個人相同型別的福卡數相加
                 }else{
                     tempCount[i] += Integer.valueOf(s1.substring(i,i+1));
                 }
            }
        }
        System.out.println(Arrays.toString(tempCount));

        // 6、排序後取福卡的最小值
        Arrays.sort(tempCount);
        System.out.println("該團隊能湊⻬" + tempCount[0]+"套福卡");

    }

相關文章