华为OD机试真题 JavaScript 实现【记负均正】【牛客练习题】

在这里插入图片描述

一、题目描述

首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。

数据范围: 1≤n ≤2000 ,输入的整数都满足∣val∣≤1000 。

二、输入描述

首先输入一个正整数n,然后输入n个整数。

三、输出描述

输出负数的个数,和所有正整数的平均值。

四、解题思路

  1. 读取输入,将整数个数存储在变量n中;
  2. 初始化负数计数变量countNegative为0,正数计数变量countPositive为0,和变量sum为0;
  3. 使用循环读取n个整数,并进行判断:
    • 如果当前整数小于0,将countNegative加1;
    • 如果当前整数大于0,将其加到sum中,同时将countPositive加1;
  4. 计算正数的平均值average,如果countPositive为0,则平均值为0;
  5. 输出负数的个数countNegative和正数的平均值average,保留一位小数;
  6. 重复步骤2-5,直到没有更多输入;

五、JavaScript算法源码

function calculate(count, input) {
    let countNegative = 0;
    let countPositive = 0;
    let sum = 0;
    const nums = input.split(' ');

    for (let i = 0; i < count; i++) {
        const number = parseInt(nums[i]);

        if (number < 0) {
            countNegative++;
        } else if (number > 0) {
            sum += number;
            countPositive++;
        }
    }

    const average = countPositive === 0 ? 0.0 : sum / countPositive;
    return `${countNegative} ${average.toFixed(1)}`;
}

六、效果展示

华为OD机试真题 JavaScript 实现【记负均正】【牛客练习题】_第1张图片


下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

你可能感兴趣的:(华为od,javascript,华为,学习,算法)