首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果语句未通过测试用例

问如果语句未通过测试用例
EN

Stack Overflow用户
提问于 2016-12-12 22:03:01
回答 1查看 685关注 0票数 0

你好,我正在做一个码战挑战,我花了很多时间来解决这个问题,我所有的测试用例都通过了,我还需要通过4个隐藏的测试用例,但是我正在通过所有隐藏的测试用例,除了一个隐藏的测试用例。我的大脑完全崩溃了,我已经创建了我自己的所有测试用例,并且它们都通过得很好。这只是一个隐藏的情况,我已经尝试过类型检查,似乎所有的东西都在检查。

孩子们有很多糖果。他们想吃和吃一样多的糖果 他们可以,但每个孩子必须吃同样数量的糖果,任何一个>其他的孩子。决定有多少块糖果会被所有的人吃掉 孩子们在一起。个别的糖果是不能分开的。 示例 对于n=3和m= 10,输出应为糖果(n,m) = 9。 每个孩子吃3片。答案是9。 输入/输出 时限4000 js (js) 输入整数n 儿童的数量. 约束:1≤n≤10。 输入整数m 糖果的数量. 约束:2≤m≤100。 输出整数 孩子们吃的糖果的总数量,只要他们吃的越多越好,所有的孩子吃的都一样。

码

​

代码语言:javascript
复制
function candies(n, m) {
  if ((n > 10 || n < 1) || (m > 100 || m < 2)) {
    return 0;
  } else if (n > m) {
    return 0;
  } else if (n === m) {
    return m;
  } else if (n < m) {
    var candyKids = Math.round(m / n);
    return candyKids * n;
  };
};

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 22:10:33

以下是您的代码将失败的一些测试用例:

代码语言:javascript
复制
candies( 2, 3 ) === 2 (Your output: 4)
candies( 2, 5 ) === 4 (Your output: 6)
candies( 3, 5 ) === 3 (Your output: 6)
candies( 4, 7 ) === 4 (Your output: 8)

错误在哪里?

您使用的是Math.round而不是Math.floor,这意味着您将收集部分糖果,这些糖果在被孩子们分割后超过一半,所以对于candies( 2, 3 ),您确定每个孩子都有m/n = 1.5糖果,然后把它围起来分配给每个孩子,但是这会产生比开始更多的糖果。在这种情况下,你需要用地板代替(总是把部分糖果放下来),并且只给每个孩子吃1糖果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41110451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档