大疆2019年8月4日21:05:27
假设每喝一杯咖啡(喝咖啡时间忽略不计)就能让自己debug效率提高A倍,一小时内重复喝没用,最多只能喝X杯(太多晚上睡不着),并且为了可持续发展,每天最多只能专注8个小时的工作时间。在没喝咖啡的状态下解决每个bug所需要的时间为t1,t2,t3,…,tN分钟。
输入包含多组测试数据,每组数据:
第一行三个正整数N,A,X,分别代表:bug的总数,喝一杯咖啡一小时内debug效率的倍数,最多可以喝的咖啡总数。(1<=N<=100, 1<=A<=8, 1<=N<=8,)
第二行有N个正整数,由空格隔开,第i个表示解决第i个bug需要的分钟数(1<=ti<=1000)
输出:
若能debug完就输出做少需要的分钟数,否则输出0
思路:
var N = 4;
var A = 3;
var X = 3;
var arr = [60, 60, 60, 60, 60, 60, 60, 60];
var arr = [333, 77, 100, 13];
var res = 0;
var sum = 0;
for (var i = 0; i < arr.length; i++) {
sum += arr[i]
}
var C_time = 60 * X * A;
if (C_time >= sum) {
var res = Math.ceil(sum / A);
} else {
var res = C_time / A + (sum - C_time);
}
if (res > 480) {
console.log(0);
} else {
console.log(res)
}
答题:
var a, b;
while ((a = readline()) != null && (b = readline()) != null) {
var line1 = a.split(' ')
var line2 = b.split(' ')
var arr1 = line1.map(item => parseInt(item));
var arr2 = line2.map(item => parseInt(item));
var sum = arr2.reduce((a, b) => a + b);
//reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次
// 执行回调函数,不包括数组中被删除或从未被赋值的元素
var time = 60 * arr1[1] * arr1[2];
if (time >= sum) {
var res = Math.ceil(sum / arr1[1]);
} else {
var res = time / arr1[1] + (sum - time);
}
if (res > 480) {
console.log(0);
} else {
console.log(res)
}
}