如果您熟悉hackerrank的生日巧克力问题,能否请您告诉我代码中存在哪些逻辑错误? s是代表巧克力块的数字数组。可以将“ m”个连续巧克力块相加多少种方式以获得“ d”
function birthday(s, d, m) {
var count=0;
for (let i=0; i<s.length-m; i++)
{ var sum=0;
for (let j=i; j<=m; j++)
{
sum=sum+s[j];
}
if(sum==d)
{
count++;
}
}
return count;
}
答案 0 :(得分:0)
问题是:
Lily有一条巧克力棒,她想与Ron分享给他 生日。每个正方形上都有一个整数。她决定 共享所选条形的连续段,以使 该细分与Ron的出生月份和上的整数之和相匹配 平方等于他的生日。您必须确定多少 她如何划分巧克力的方式。
JavaScript实现:
function shareQuantityOfChocoloate(s, d, m) {
var count = 0;
for (var i = 0; i < s.length - m + 1; i++){
var sum = 0;
for (var j = 0; j < m; j++){
sum = sum + s[i + j];
}
if (sum == d) {
count++;
}
}
return count;
}
答案 1 :(得分:0)
问题:
莉莉(Lily)有一条巧克力棒,她想与罗恩(Ron)生日分享。每个正方形上都有一个整数。她决定共享所选条形的连续段,以使段的长度与Ron的出生月份相匹配,并且平方上的整数之和等于他的出生日期。您必须确定她可以分割巧克力的几种方式。
将巧克力块视为正方形阵列,s = [2,2,1,3,2]。她想找到总计为罗恩(Ron)生日(d = 4)且长度等于他的出生月份(m = 2)的细分。在这种情况下,有两个细分满足她的标准:[2,2]和[1,3]。
function birthday(s, d, m) {
var count=0,sum=0;
for(var i=0;i<=s.length-m;i++){
var j=i+1;
sum=s[i];
while(j<i+m) sum+= s[j++];
if(sum == d) count++;
}
return count;
}