您的位置:首页 > 其它

算法题--数字游戏

2017-09-17 18:03 204 查看


题目描述

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

<?php
$handler = fopen('php://stdin','r');
$n = trim(fgets($handler));
$arr = explode(' ', trim(fgets($handler)));
echo find($arr,$n);
function find($arr,$n) {
sort($arr);
$sum = 0;
for ($i=0;$i<$n;$i++) {
if ($arr[$i]-$sum>1) {
return $sum+1;
}
$sum+=$arr[$i];
}
return $sum+1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: