开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第30天,点击查看活动详情
题目描述
给你一个由正整数组成的整数数组 nums ,返回其中可被 3 整除的所有偶数的平均值。
注意:n 个元素的平均值等于 n 个元素 求和 再除以 n ,结果 向下取整 到最接近的整数。
来源:力扣(LeetCode)
- 示例 1
输入:nums = [1,3,6,10,12,15]
输出:9
解释:6 和 12 是可以被 3 整除的偶数。(6 + 12) / 2 = 9 。
- 示例 2
输入: nums = [1,2,4,7,10]
输出: 0
解释: 不存在满足题目要求的整数,所以返回 0 。
提示:
1 <= nums.length <= 10001 <= nums[i] <= 1000
思路分析
根据题意可知,题目给出一个由正整数组成的整数数组 nums ,需要我们找出出数组nums里面所有能被3整除的偶数,并且计算出它们的平均值。偶数,那也就是说这些数字,需要满足既能被3整除又能被2整除。计算平均数时,有些是不能整除的,所以遇到这种情况时候就需要向下取整。
声明两个变量,一个index存储符合规则的数量,一个total存储符合规则所有数字的总和。循环数组nums,在循环项中判断每个元素中是否符合规则,只要使用元素余以3等于0,同时元素余以2等于0,该元素就符合规则,就是能被3整除的偶数。index就在原来的基础上加一;总数total就在原来的基础上加上符合规则的元素;这样在每次循环中一直累加上去,直到循环结束;最后使用总数total除以个数index,若是不能整除就往下取整,将最后的结果返回。
AC代码
function solution() {
let index = 0;
let total = 0;
for(let i=0; i<nums.length; i++) {
if(nums[i] % 3 === 0 && nums[i] % 2 === 0) {
total += nums[i];
index += 1;
}
}
if(index === 0) {
console.log(0);
}else{
let num = Math.floor(total / index);
console.log(num);
}
}
let nums = [1,2,4,7,10];
solution(nums)