一、题目描述
首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。
数据范围: 1≤n ≤2000 ,输入的整数都满足∣val∣≤1000 。
二、输入描述
首先输入一个正整数n,然后输入n个整数。
三、输出描述
输出负数的个数,和所有正整数的平均值。
四、解题思路
- 读取输入,将整数个数存储在变量n中;
- 初始化负数计数变量countNegative为0,正数计数变量countPositive为0,和变量sum为0;
- 使用循环读取n个整数,并进行判断:
- 如果当前整数小于0,将countNegative加1;
- 如果当前整数大于0,将其加到sum中,同时将countPositive加1;
- 计算正数的平均值average,如果countPositive为0,则平均值为0;
- 输出负数的个数countNegative和正数的平均值average,保留一位小数;
- 重复步骤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 实现【相对开音节】【2022Q4 100分】,附详细解题思路
🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)
每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。