广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

佛山Java题库练习题,看看你有哪些不会的

作者:admin01发布时间:2021-07-12分类:Java技术浏览:574


导读:题目:求0,1,2,3,4,5,6,7所能组成的8位奇数个数。/** * 【程序41】 * 题目:求0,1,2,3,4,5,6,7所...

题目:求0,1,2,3,4,5,6,7所能组成的8位奇数个数。

/**
 * 【程序41】
 * 题目:求0,1,2,3,4,5,6,7所能组成的8位奇数个数。
 */
public class Subject41 {

    public static void main(String[] args) {
        int[] arr = new int[]{0,1,2,3,4,5,6,7};
        compose(arr);
    }

    /**
     * 获取:0—7所能组成的奇数个数
     */
    private static void compose(int[] arr) {
        /**奇数特点,该数不能被2整数。故各位数是1,3,5,7,9**/
        int oddCount = 0;
        for (int i = 0; i < arr.length; i++) {
            if(!isParity(arr[i])){
                oddCount++;
            }
        }
        /***************各位已经确定,剩下的数可以组成整数的个数*******************/
        int num = factorial(arr.length-1);
        /****************输出结果*********************/
        System.out.println("以下数字:");
        printArray(arr);
        System.out.println("可产生的奇数个数:"+oddCount*num);

    }

    /**
     * 判断num是奇数还是偶数
     * @param num
     * @return
     */
    private static boolean isParity(int num) {
        if(num%2 == 1){
            return false;
        }else {
            return true;
        }
    }

    /**
     * 计算num的阶乘!
     * @param num
     * @return
     */
    public static int factorial(int num){
        if(num == 1){
            return 1;
        }else{
            return num*factorial(num-1);
        }
    }

    /**
     * 打印数组
     * @param arr
     */
    private static void printArray(int[] arr) {
        for (int i = 0; i < arr.length ; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}

运行结果:

题目:输入一个偶数,判断该偶数等于哪两个素数之和。

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 【程序42】
 * 题目:输入一个偶数,判断该偶数等于哪两个素数之和。
 */
public class Subject42 {
    public static void main(String[] args) {
        System.out.println("请输入大于等于2的偶数:");
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        getTwoPrimeNum(num);
    }

    /**
     * 获取两个素数
     * @param num
     */
    private static void getTwoPrimeNum(int num) {
        List primeNumberList = getPrimeNumber(2,num);
        for (int i = 0; i < primeNumberList.size(); i++) {
            for (int j = i; j < primeNumberList.size(); j++) {
                if(num == primeNumberList.get(i) + primeNumberList.get(j)){
                    System.out.println("该偶数为素数("+primeNumberList.get(i)+")和素数("+primeNumberList.get(j)+")的和");
                }
            }
        }
    }

    /**
     * 判断a和b之间有多少个素数
     * @param a
     * @param b
     */
    public static List getPrimeNumber(int a, int b){
        List primeNumberList = new ArrayList<>();
        if(a >= b){
            System.out.println("a不能大于等于b!");
        }
        for(int i=a;i<=b;i++){
            if(isPrimeNumber(i)){
                primeNumberList.add(i);
            }
        }
        return primeNumberList;
    }

    /**
     * 判断num是否是一个素数
     * @param i
     * @return
     */
    private static boolean isPrimeNumber(int i) {
        boolean flag = true;
        for(int j=2;j <= i/2;j++){
            if(i%j == 0){
                flag = false;
                break;
            }
        }
        return flag;
    }
}


免责声明:本文文字及图片由小编转载自网络,版权所有权归原作者所有,如有侵权请及时联系我们进行删除。

以上是小编为大家带来的最新资讯,喜欢的朋友们可以继续关注本站最新动态,也可以咨询在线客服。


Java技术排行
标签列表
网站分类
文章归档
最近发表