java编程奇偶质合问题?
发布网友
发布时间:2024-07-02 10:29
我来回答
共2个回答
热心网友
时间:2024-08-24 16:20
public class Test {
//定义第一个静态整数类型的集合用于存储最终的数字结果
private static ArrayList<Integer> integers = new ArrayList<>();
//定义第二个静态整数类型的集合用于存储最终的数字结果
private static ArrayList<Integer> integers2 = new ArrayList<>();
//先创建一个静态键盘录入扫描的对象
private static Scanner scanner = new Scanner(System.in);
//定义主方法
public static void main(String[] args) {
//定义一个死循环
while (true){
//提示用户输入,并接收
System.out.println("请输入小写字母a或b或c或d");
String s = scanner.nextLine();
//用switch单只匹配
switch (s){
//当输入的值是“a”时,为基数
case "a":
//调用方法
ArrayList<Integer> cardinalNumber = isCardinalNumber();
//打印集合
System.out.println("100以内的基数有:"+cardinalNumber);
break;
//当输入的值是“b”时,为偶数
case "b":
//调用方法
ArrayList<Integer> evenNumbers = isEvenNumbers();
//打印集合
System.out.println("100以内的偶数有:"+evenNumbers);
break;
//当输入的值是“c”时,为质数
case "c":
//调用方法
ArrayList<Integer> primeNumber = isPrimeNumber();
//打印集合
System.out.println("100以内的质数有:"+primeNumber);
break;
//当输入的值是“d”时,为合数
case "d":
//调用方法
ArrayList<Integer> totalNumber = isTotalNumber();
//打印集合
System.out.println("100以内的合数有:"+totalNumber);
break;
//当输入的值是“ac”时,为即是基数又是质数
case "ac":
//调用方法
ArrayList<Integer> cardinalNumberAndPrimeNumber = isCardinalNumberAndPrimeNumber();
//打印集合
System.out.println("100以内的即是基数又是质数有:"+cardinalNumberAndPrimeNumber);
break;
default:
System.out.println("您只可以输入一下小写字母:a,b,c,d,ac");
}
}
}
/**
* 封装方法,判断是否是基数
* @return
*/
public static ArrayList<Integer> isCardinalNumber(){
//先清空集合
integers.clear();
//定义for循环遍历到所有的100以内的整数
for (int i = 0; i <= 100; i++) {
//判断出所有的基数并保存到集合中
if (i % 2 != 0){
integers.add(i);
}
}
return integers;
}
/**
* 封装方法:是否是偶数
* @return
*/
public static ArrayList<Integer> isEvenNumbers(){
//先清空集合
integers.clear();
//定义for循环遍历到所有的100以内的整数
for (int i = 0; i <= 100; i++) {
//判断出所有的偶数并保存到集合中
if (i % 2 == 0)integers.add(i);
}
return integers;
}
/**
* 封装方法:是否是质数
* @return
*/
public static ArrayList<Integer> isPrimeNumber(){
//先清空集合
integers.clear();
//定义外循环遍历到2到100的数,1直接跳过
for(int i = 2 ; i <= 100;i++) {
//1、定义一个标记
boolean flag = true;
//定义内循环,Math.squart()取i平方根,对其它数取余能整除就不是质数。固定算法
for(int j = 2; j <= (int)Math.sqrt(i); j++) {
if(i % j == 0) {
//2、更改标记
flag = false;
break;
}
}
//3、得结论
if(flag) {
integers.add(i);
}
}
return integers;
}
/**
* 封装方法:是否是合数
* @return
*/
public static ArrayList<Integer> isTotalNumber(){
//先清空集合
integers.clear();
//定义外循环遍历到2到100的数,1直接跳过
for(int i = 2 ; i <= 100;i++) {
//1、定义标记
boolean flag = false;
//定义内循环。能被1或自身或其它数整除就是合数
for(int j = 2; j < i; j++) {
if(i % j == 0) {
//2、更改标记
flag = true;
break;
}
}
//3、得结论
if(flag) {
integers.add(i);
}
}
return integers;
}
/**
* 封装方法:即是基数又是质数
* @return
*/
public static ArrayList<Integer> isCardinalNumberAndPrimeNumber(){
//先选出基数
ArrayList<Integer> cardinalNumber = isCardinalNumber();
//再从集合中选出质数
//定义外循环遍历集合
for (Integer integer : cardinalNumber) {
//1、定义一个标记
boolean flag = true;
//定义内循环,Math.squart()取i平方根,对其它数取余能整除就不是质数。固定算法
for(int j = 2; j <= (int)Math.sqrt(integer); j++) {
if(integer % j == 0) {
//2、更改标记
flag = false;
break;
}
}
//3、得结论
if(flag) {
integers2.add(integer);
}
}
return integers2;
}
//最后就是不用说了吧。自己组合。从已有的集合中选数字就行。这样能避免复杂的判断出现的错误
}
热心网友
时间:2024-08-24 16:21
Java之奇偶组合 写一个函数,将已知数组的奇数项组合成一个新的数组,在函数中调用该数组,并且输出新数组的内容。