随机生成20个1-100的随机数把奇数和偶数分别放在两个集合中然后求奇数和偶数的和
参考代码如下:
public static void main(String[] args) {
// 定义奇数和偶数两个集合
List<Integer> jishu = new ArrayList<>();
List<Integer> oushu = new ArrayList<>();
Random random = new Random();
// 随机生成20个1-100的随机数把奇数和偶数分别放在两个集合中
for (int i = 0; i < 20; i++) {
int num = random.nextInt(100) + 1;
if (num % 2 == 0) {
oushu.add(num);
} else {
jishu.add(num);
}
}
// 求奇数和偶数的和
int jishuSum = 0;
int oushuSum = 0;
for (Integer val : jishu) {
jishuSum += val;
}
for (Integer val : oushu) {
oushuSum += val;
}
System.out.println(jishuSum);
System.out.println(oushuSum);
}
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
public class testtt {
public static void main(String[] args) {
int temp = 0;
//奇数
List odd = new ArrayList();
//偶数
List even = new ArrayList();
for (int i = 0; i < 20; i++) {
temp = (int) (Math.random() * 99 + 0);
while (isExist(temp, odd, even)) {
temp = (int) (Math.random() * 99 + 0);
}
if (temp % 2 == 0) {
even.add(temp);
} else {
odd.add(temp);
}
}
System.out.println(odd.toString());
System.out.println(even.toString());
//求和
int oddSum = 0;
int evenSum=0;
if(!CollectionUtils.isEmpty(odd)){
oddSum = odd.stream().mapToInt(x -> (int) x).sum();
}
if(!CollectionUtils.isEmpty(even)){
evenSum = even.stream().mapToInt(x -> (int) x).sum();
}
System.out.println("奇数集合的和:"+oddSum);
System.out.println("偶数数集合的和:"+evenSum);
}
private static boolean isExist(int temp, List odd, List even) {
if (odd.indexOf(temp) > 0 || even.indexOf(temp) > 0) {
return true;
} else {
return false;
}
}
}
问题解决,请采纳!
我的思路是:
1、先在一个for循环用Random类的randInt()方法产生20个随机数,然后通过判断是否可以整除2来判断是奇数还是偶数,然后放入偶数集合或奇数集合
2、用两个for循环依此遍历奇数集合和偶数集合,计算产生的奇数和偶数的和。
3、打印结果。
参考链接:
java中产生指定范围内的随机数_打呼噜的星.的博客-CSDN博客_java随机生成一个区间的数
代码如下:
import java.util.ArrayList;
import java.util.Random;
public class RandomList {
public static void main(String[] args) {
ArrayList<Integer> evenNumbers = new ArrayList<Integer>();
ArrayList<Integer> oddNumbers = new ArrayList<Integer>();
int numbers[] = new int[20];
Random rand = new Random();
//产生20个1到100的随机数
System.out.println("产生的随机数为:");
for(int i=0;i<20;i++) {
//https://blog.csdn.net/wsj_jerry521/article/details/109735801
numbers[i] = rand.nextInt(100)+1;
System.out.print(numbers[i]+" ");
if(numbers[i]%2==0) { //如果是偶数放入偶数集合
evenNumbers.add(numbers[i]);
}else { //如果是奇数放入奇数集合
oddNumbers.add(numbers[i]);
}
}
System.out.println();
int evenSum=0;
int oddSum=0;
System.out.println("产生的偶数为:");
for(int i=0;i<evenNumbers.size();i++) { //遍历偶数集合,计算产生的偶数之和
System.out.print(evenNumbers.get(i)+" ");
evenSum+=evenNumbers.get(i);
}
System.out.println();
System.out.println("产生的奇数为:");
for(int i=0;i<oddNumbers.size();i++) {//遍历奇数集合,计算产生的奇数集合
System.out.print(oddNumbers.get(i)+" ");
oddSum+=oddNumbers.get(i);
}
//打印结果
System.out.println("\n产生的随机数偶数之和是:"+evenSum);
System.out.println("产生的随机数奇数之和是:"+oddSum);
}
}
import java.util.*;
public class Solution {
public static void main(String[] args) {
// 随机生成20个1-100的随机数把奇数和偶数分别放在两个集合中然后求奇数和偶数的和
HashSet<Integer> set1 = new HashSet<>();
HashSet<Integer> set2 = new HashSet<>();
int s1 = 0;
int s2 = 0;
while (set1.size() < 20 || set2.size() < 20){
int tmp = 1 + (int) (Math.random() * 100);// -----> [1,100]
// 偶数
if (tmp%2 == 0 ) {
if (set2.size()<20 && !set2.contains(tmp)){
set2.add(tmp);
s2 += tmp;
}
}else {
// 奇数
if (set1.size()<20 && !set1.contains(tmp)) {
set1.add(tmp);
s1 += tmp;
}
}
}
System.out.println("set1 = " + set1);
System.out.println("set2 = " + set2);
System.out.println("set1的总和 = " + s1);
System.out.println("set2的总和 = " + s2);
}
}