介绍
给定民意测验中的一组选择百分比,请计算民意测验中必须存在的最少选民人数才能生成这些统计数据。
示例:您最喜欢的宠物是什么?
- 狗:
44.4%
- 猫:
44.4%
- 老鼠:
11.1%
输出:(9
最少可能的选民人数)
眼镜
这是您的程序/功能的要求:
- 您将得到一个百分比值数组作为输入(在stdin上,作为函数参数等)。
- 每个百分比值都是一个四舍五入到小数点后一位的数字(例如
44.4 44.4 11.1
)。 - 计算民意测验的最小可能投票人数,当四舍五入到小数点后一位(标准输出或函数返回值)时,其投票结果将产生准确的百分比。
- 奖励:-15个字符,如果您可以“非平凡”的方式解决(即不涉及遍历所有可能的选民,直到找到第一个可行的选民)
例
>./pollreverse 44.4 44.4 11.1
9
>./pollreverse 26.7 53.3 20.0
15
>./pollreverse 48.4 13.7 21.6 6.5 9.8
153
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 99.6
2000
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 98.7
667
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 98.7
2000
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 97.8
401
计分
这是代码高尔夫球,所以最短的字符会获胜。从总字符数中进一步减去任何奖金。
0.5%
从总数中亏损,而每次进行四舍五入时,您都会0.5%
得出总计。特意构建了最后四个测试用例,以最佳地利用这一现象。在结果为的第一个测试用例中2000
,前9个条目中的每一个均代表1
表决(均已向上舍入0.5%
),而最后一个代表1991
表决(并已舍入〜0.5%
)。如果您手动计算这些百分比并四舍五入到小数点后一位,您会发现它们都是正确的。
26.7 53.3 20.0
(4 8 15 3),48.4 13.7 21.6 6.5 9.8
(74 21 33 10 153 15)等