首页 > AI文库 >

用java语言实现以下功能,小红拿到一个数组,她每次操作可以选择两个元素,将它们变成它们的平均数(当且仅当这两个元素的平均数为整数时才可操作)。小红想知道,自己能否通过一次操作,使得所有元素的乘积为偶

分享 12456
以下是使用Java语言实现该功能的代码:

```java
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt(); // 询问次数

for (int i = 0; i < t; i++) {
int n = scanner.nextInt(); // 数组元素个数
int[] arr = new int[n]; // 数组

for (int j = 0; j < n; j++) {
arr[j] = scanner.nextInt();
}

boolean canMakeProductEven = canMakeProductEven(arr);
System.out.println(canMakeProductEven ? "YES" : "NO");
}
}

// 判断是否可以通过一次操作使得所有元素的乘积为偶数
private static boolean canMakeProductEven(int[] arr) {
int oddCount = 0; // 奇数个数
int evenCount = 0; // 偶数个数

for (int num : arr) {
if (num % 2 == 0) {
evenCount++;
} else {
oddCount++;
}
}

// 如果数组中有偶数,则一次操作即可使得所有元素的乘积为偶数
if (evenCount > 0) {
return true;
}

// 如果数组中只有奇数个数大于等于2,则一次操作即可使得所有元素的乘积为偶数
if (oddCount >= 2) {
return true;
}

return false;
}
}
```

输入示例:
```
2
4
1 2 3 4
3
1 3 5
```

输出示例:
```
YES
NO
```

解释:
- 第一组询问中,数组为 [1, 2, 3, 4],可以选择将 1 和 3 变成它们的平均数 2,得到数组 [2, 2, 2, 4],所有元素的乘积为偶数,所以输出 YES。
- 第二组询问中,数组为 [1, 3, 5],无法通过一次操作使得所有元素的乘积为偶数,所以输出 NO。

相关推荐

中国经济实现高质量发展具备哪些显著优势论文1500字

AI文库

世界变乱交织,中国笃行担当 变革动荡 大国关系 中国智慧 上述内容分别为大标题和三个小标题,请以此写出不少于2000字的形式与政策论文,要求内容充实具体,不存在抄袭、、雷同情况

AI文库

假如你是形式与政策这个课程的一名学生,请以“世界变乱多织,中国笃行担当”为主题,写一篇论文,要求完全按照论文的格式,字数一定在2500字以上!

AI文库

请结合《走好新时代科技自立自强之路》专题和今年2月8日广东省高质量发展大会聚焦产业科技话创新、谋未来主题,谈谈你对党的二十大提出的“科技强国”战略的认识及行动

AI文库

国家安全为什么与你我息息相关论文不少于1500

AI文库

热门图文

上一篇:小红准备买药治病,已知有n种药症和m种药,第i种药可以治疗一些症状,但可能会有一些副作用,添加一些新症状,小红依旧一次服用了一些药,请你告诉小红,每当服用一副药,当前还有多少症状。帮我使用python

下一篇:java代码实现: 小美拿到了一个数组,她每次可以进行如下操作:选择两个元素,一个加 1, 另一个减 1。小美希望若干次操作后,众数的出现次数尽可能多。 你能帮她求出最小的操作次数吗? 众数定义:在一