为什么在这个数学问题中我总是得到错误的答案?

时间:2019-06-19 16:16:20

标签: javascript

在Uri Online Judge网站上,我需要有关此逻辑数学问题的帮助: enter image description here 提交的代码以“ var limit”开头,我使用var行来处理输入示例:

spring-boot-app-c

所以,当我提交这个时: enter image description here 它显示为“错误答案”,我不知道自己做错了什么。

2 个答案:

答案 0 :(得分:2)

你有

var lines = input.split('\n');

将以下值的长度作为第一个元素。

您的循环看起来像

var limit = parseInt(lines[0], 10); // take a radix as well

for (var i = 1; i <= limit; i++) { // start from one
    var number = parseInt(lines[i], 10); // take value directly without mutating the array

然后,您无需检查该值是否在所需范围内,因为该页面仅提供了更多信息。您可以通过查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators来检查Javascript的整数值是否适合此范围。

但是您可以检查该值是否在间隔[10,20]之内

    if (number >= 10 && number <= 20) {
        inside++;
    }
}
// finally
out = limit - inside;

答案 1 :(得分:-1)

我不确定您代码中的逻辑。您可以使用1个循环来实现解决方案。我在下面的C中编写了示例解决方案。您应该看一下,了解逻辑,然后将其转换为javascript。

#include <stdio.h>

int main(void) {
  int N, in_range = 0, out_range = 0, cur_num;
  scanf("%d", &N);

  for(int i = 0; i < N; i++){
    scanf("%d", &cur_num);

    if (cur_num >= 10 && cur_num <= 20) in_range++;
    else out_range++;
  }

  printf("%d in\n", in_range);
  printf("%d out\n", out_range);

  return 0;
}