數字游戲(找規律)


題目描述

小易邀請你玩一個數字游戲,小易給你一系列的整數。你們倆使用這些整數玩游戲。每次小易會任意說一個數字出來,然后你需要從這一系列數字中選取一部分出來讓它們的和等於小易所說的數字。 例如: 如果{2,1,2,7}是你有的一系列數,小易說的數字是11.你可以得到方案2+2+7 = 11.如果頑皮的小易想坑你,他說的數字是6,那么你沒有辦法拼湊出和為6 現在小易給你n個數,讓你找出無法從n個數中選取部分求和的數字中的最小數。

輸入描述:

輸入第一行為數字個數n (n ≤ 20)
第二行為n個數x
i
(1 ≤ x
i
≤ 100000)

輸出描述:

輸出最小不能由n個數選取求和組成的數
示例1

輸入

3
5 1 2

輸出

4
 1 /**
 2  *  數字游戲
 3  *      1、排序
 4           2、 遍歷求和 ,當現有的和小於下一個數時 就會有空缺
 5  * @author Dell
 6  *
 7  */
 8 import java.util.ArrayList;
 9 import java.util.List;
10 import java.util.Scanner;
11 
12 public class Main {
13     static public int n = 3;
14     static public List<Integer> list = new ArrayList();
15     static {
16         list.add(5);
17         list.add(1);
18         list.add(2);
19         list.sort(null);
20     }
21 
22     static public int f() {
23         list.sort(null);
24         int sum = 0;
25         for (Integer integer : list) {
26             if (sum + 1 < integer) {
27                 return sum + 1;
28             } else {
29                 sum += integer;
30             }
31         }
32         return sum + 1;
33     }
34 
35     public static void main(String[] args) {
36         Scanner sc = new Scanner(System.in);
37         n = Integer.parseInt(sc.nextLine());
38         String[] str = sc.nextLine().split(" ");
39         list = new ArrayList();
40         for (int i = 0; i < n; i++) {
41             list.add(Integer.parseInt(str[i]));
42         }    
43         System.out.println(f());    
44     }
45 }
46     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM