Java: The number of bits of an integer is solved

/**
 * 版權所有 2022 塗聚文有限公司
 * 許可信息查看:
 * 描述: 1-100 累加值 但要求跳過所有包含有3的數
 * 公用類庫 公共所需要用的操作函數或方法
 *
 * 歷史版本: JDK 8.01
 * 2023-03-12 創建者 geovindu
 * 2023-03-12 添加 Lambda
 * 2023-03-12 修改:date
 * 接口類
 * 2023-03-12 修改者:Geovin Du
 * 生成API幫助文檔的指令:
 *javadoc - -encoding Utf-8 -d apidoc IntegerDigitControl.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */

package Geovin.Du.Common;

import java.util.LinkedList;
/**
 *整數位數的操作的類
 * @author geovindu  塗聚文
 * @version 1.0
 *
 */
public class IntegerDigitControl {

    /**
     * 判斷是否含有數字3
     * @param number 輸入參數 整數
     * @return 返回是否含3的數
     */
    public boolean  isThreeNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {
            int ge=number%10;
            int shi=(number%10)/10;
            int bai=number/100;
            if(ge==3||shi==3||bai==3)
                isOk=true;
        }
        return  isOk;
    }

    /**
     * 判斷是否含有指定的數字
     * @param number 輸入參數 整數
     * @param num 指定的數字
     * @return
     */
    public boolean  isThreeNumber(int number,int num)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {
            int ge=number%10;
            int shi=(number%10)/10;
            int bai=number/100;
            if(ge==num||shi==num||bai==num)
                isOk=true;
        }
        return  isOk;
    }

    /**
     * 獲取字符串數組並將其拆分的方法
     * @param number  輸入參數 整數
     * @return
     */
    public boolean  isSplitNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);

            String[] digits = strNumber.split("(?<=.)");
            String digit="";
            for(int i = 0; i < digits.length; i++) {
                //System.out.println(digits[i]);
                digit=digits[i];
                if(digit.equals("3"))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     * 獲取字符串數組並將其拆分的方法
     * @param number 輸入是1至100的整數
     * @param num 指定的數字  之外
     * @return
     */
    public boolean  isSplitNumber(int number,int num)
    {
        boolean isOk=false;
        String strNum=String.valueOf(num);
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);

            String[] digits = strNumber.split("(?<=.)");
            String digit="";
            for(int i = 0; i < digits.length; i++) {
                //System.out.println(digits[i]);
                digit=digits[i];
                if(digit.equals(strNum))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     *%(mod)獲取給定整數的餘數 使用餘數方法獲得整數的每一個數字
     * @param number 輸入參數 整數
     * @return 返回是否含指定的3數字
     */
    public boolean  isModNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {


            LinkedList<Integer> stack = new LinkedList<Integer>();
            while(number > 0){
                stack.push(number % 10);
                number = number / 10;
            }
            while ((!stack.isEmpty())){
                String digit="";
                //System.out.println(stack.pop());
                digit=String.valueOf(stack.pop());
                if(digit.equals("3"))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     *使用餘數方法獲得整數的每一個數字
     * @param number 輸入參數 整數
     * @param num 指定的數字
     * @return 返回是否含指定的數字
     */
    public boolean  isModNumber(int number,int num)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {


            LinkedList<Integer> stack = new LinkedList<Integer>();
            while(number > 0){
                stack.push(number % 10);
                number = number / 10;
            }
            while ((!stack.isEmpty())){
                String digit="";
                //System.out.println(stack.pop());
                digit=String.valueOf(stack.pop());
                if(digit.equals(String.valueOf(num)))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     *使用字符串的 toCharArray() 得到字符數組
     * @param number 輸入參數 整數
     * @return 返回是否含指定的3數字
     */
    public boolean  isCharArrayNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);
            char[] digits = strNumber.toCharArray();
            String digit="";
            for(int i = 0; i < digits.length; i++) {
                digit=String.valueOf(digits[i]);
                if(digit.equals("3"))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     * 使用字符串的 toCharArray() 得到字符數組
     * @param number 輸入參數 整數
     * @param num 指定的數字
     * @return 返回是否含指定的數字
     */
    public boolean  isCharArrayNumber(int number,int num)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);
            char[] digits = strNumber.toCharArray();
            String digit="";
            String strNum=String.valueOf(num);
            for(int i = 0; i < digits.length; i++) {
                digit=String.valueOf(digits[i]);
                if(digit.equals(strNum))
                    isOk=true;
            }

        }
        return  isOk;
    }
    /**
     * 用取餘方法
     * @param number 輸入的數字
     * @return 返回是否含3的數字
     */
    public boolean  isThreeNumberOne(int number)
    {
        boolean isOk=false;
        int a=0;
        int b=0;
        if(number<=100&&number>0)
        {

            while (number != 0) {
                b = number % 10;
                a =number / 10;
                if(a==3||b==3)
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     * 遞歸方法 使用遞歸法從整型數中分離數字
     * @param number
     * @return
     */
    public  boolean recursion(int number) {
        boolean isOk=false;
        if(number<=number&&number > 0) {
            recursion(number/10);
            int n=number%10;
            if(n==3)
                isOk=true;
        }
        return  isOk;
    }

    /**
     * 遞歸方法 使用遞歸法從整型數中分離數字
     * @param number 輸入的數字
     * @param num  指定包含的數字
     * @return
     */
    public  boolean recursion(int number,int num) {
        boolean isOk=false;
        if(number<=number&&number > 0) {
            recursion(number/10);
            int n=number%10;
            if(n==num)
                isOk=true;
        }
        return  isOk;
    }
    /**
     * 遞歸方法 使用遞歸法從整型數中分離數字
     * @param number 輸入的數字
     * @param maxNumber 輸入的數字的最大數
     * @return 返回是否位數上有含3的數字否
     */
    public  boolean recursionMax(int number,int maxNumber) {
        boolean isOk=false;
        if(number<=maxNumber&&number > 0) {
            recursion(number/10);
            int n=number%10;
            if(n==3)
                isOk=true;
        }
        return  isOk;
    }


}

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章