zoukankan      html  css  js  c++  java
  • 小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和

    小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和的数字中的最小数。 

    输入描述:
    输入第一行为数字个数n (n ≤ 20)
    第二行为n个数xi (1 ≤ xi ≤ 100000)
    输出描述:
    输出最小不能由n个数选取求和组成的数
    输入例子:
    3
    5 1 2
    输出例子:
    4
    算法思想:求最小不连续的数 但是看了别人的答案感觉很好,当前i项的和与第i+1项不连续时,那么最小不能达到的数就是前i项的和+1

     1 package fromniuke;
     2 
     3 import java.util.Arrays;
     4 import java.util.Scanner;
     5 //思想:当前i项的和与第i+1项不连续时,那么最小不能达到的数就是前i项的和+1
     6 public class Test25 {
     7 
     8     public static void main(String[] args) {
     9 
    10         Scanner sc = new Scanner(System.in);
    11         while(sc.hasNext()){
    12             int n = sc.nextInt();
    13             int[] arr = new int[n];
    14             for (int i = 0; i < n; i++) {
    15                 arr[i] = sc.nextInt();
    16             }
    17             Arrays.sort(arr);
    18             int sum = 0;
    19             for (int i = 0; i <n-1; i++) {
    20                 sum += arr[i];
    21                 if(sum+1<arr[i+1]){
    22                     System.out.println((sum+1));
    23                     break;
    24                 }
    25             }
    26         }
    27     }
    28 
    29 }
    Jumping from failure to failure with undiminished enthusiasm is the big secret to success.
  • 相关阅读:
    作业1-四则运算题目生成程序
    实验四 决策树算法及应用
    实验三朴素贝叶斯算法及应用
    自定义博客园背景
    机器学习 实验二 K-近邻算法及应用
    机器学习 实验一 感知器及其运用
    实验三 面向对象分析与设计
    实验二 结构化分析与设计
    实验一:软件开发文档与工具的安装与使用
    朴素贝叶斯学习日志——简单案例python计算过程
  • 原文地址:https://www.cnblogs.com/chongerlishan/p/5968597.html
Copyright © 2011-2022 走看看