幸运的袋子
来源:互联网 发布:小明看看白白永久域名 编辑:程序博客网 时间:2024/06/10 23:05
题目描述
一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。
例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3
你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。
例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3
你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。
$handler = fopen('php://stdin','r');$n = fgets($handler);$arr = explode(' ', fgets($handler));sort($arr);echo find($arr,0,0,1,$n);
function find($arr,$index,$sum,$mul,$n) { $count = 0; for ($i=$index;$i<$n;$i++) { $sum += $arr[$i]; $mul *= $arr[$i]; if ($sum > $mul) { $count += 1+find($arr,$i+1,$sum,$mul,$n); } else if ($arr[$i] == 1) { $count += find($arr,$i+1,$sum,$mul,$n); } else { break; } $sum -= $arr[$i]; $mul /= $arr[$i]; while ($arr[$i] == $arr[$i+1] && $i < $n-1) { $i++; } } return $count;}
阅读全文
0 0
- 幸运的袋子
- 幸运的袋子
- 幸运的袋子
- 幸运的袋子---递归
- 幸运的袋子
- 幸运的袋子
- 幸运的袋子
- 网易笔试题:幸运的袋子
- 网易笔试编程题-幸运的袋子
- dfs+避免重复-幸运的袋子(网易题)
- 2017网易内推笔试题---幸运的袋子
- 幸运的袋子问题(DFS+回溯+剪枝)
- 网易2017内推笔试2:幸运的袋子 [python]
- 网易2017内推笔试编程题合集(二)第二题 幸运的袋子
- 人生的四个袋子
- 网易2017内推笔试编程题合集(二)-幸运袋子
- 网易笔试题--幸运袋子(数列各项和大于数列各项乘积)
- 可怜的大袋子/无用之人
- poj 2181 Jumping Cows
- C语言初步-第31讲:循环控制结构及流程图(循环的嵌套流程图)
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- textview点击弹出键盘的回车键,添加相应事件
- C3P0与数据库的连接与配置
- 幸运的袋子
- Java学习-反射机制的学习
- WebView跳转H5页面后无法交互问题
- 欢迎使用CSDN-markdown编辑器
- 学校私有云盘(私有云存储)解决方案!
- 【MySQL】Windows系统下安装MySQL 5.6.37(压缩包方式)
- Xcode Tips
- 测试之黑盒用例设计方法(状态迁移图法)
- 评职称自费出书需要多长时间