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 Common;
import java.util.LinkedList;
/**
*100以内整数位数的操作的类
* @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;
}
/**
*
* @param number 输入参数 需要判断的整数
* @param num 输入参数 需要除外的数字
* @param maxNumber 输入参数 在此范围内的最大整数
* @return 返回是否包含指定的数字 逻辑值
*/
public boolean isSplitNumber(int number,int num,int maxNumber)
{
boolean isOk=false;
String strNum=String.valueOf(num);
if(number<=maxNumber&&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;
}
/**
*使用余数方法获得整数的每一个数字
* @param number 输入参数 整数
* @param num 输入参数 指定的数字
* @param maxNumber 输入参数 在此范围内的整数
* @return 返回是否含指定的数字
*/
public boolean isModNumber(int number,int num ,int maxNumber)
{
boolean isOk=false;
if(number<=maxNumber&&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;
}
/**
* 使用字符串的 toCharArray() 得到字符数组
* @param number 输入参数 整数
* @param num 指定的数字
* @param maxNumber 输入参数 在此范围内的整数
* @return 返回是否含指定的数字
*/
public boolean isCharArrayNumber(int number,int num,int maxNumber)
{
boolean isOk=false;
if(number<=maxNumber&&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;
int max=100;
if(number<=max&&number > 0) {
recursion(number/10);
int n=number%10;
if(n==3)
isOk=true;
}
return isOk;
}
/**
* 递归方法 使用递归法从整型数中分离数字
* @param number
* @param maxNumber
* @return
*/
public boolean recursionMax(int number,int maxNumber) {
boolean isOk=false;
int max=100;
if(number<=maxNumber&&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;
int max=100;
if(number<=max&&number > 0) {
recursion(number/10);
int n=number%10;
if(n==num)
isOk=true;
}
return isOk;
}
/**
* 递归方法 使用递归法从整型数中分离数字
* @param number 输入参数 整数数字
* @param num 输入参数 指定包含的数字
* @param maxNumber 输入参数 限制最大的整数
* @return 返回是否含指字的数字
*/
public boolean recursion(int number,int num,int maxNumber) {
boolean isOk=false;
//int max=100;
if(number<=maxNumber&&number > 0) {
recursion(number/10);
int n=number%10;
if(n==num)
isOk=true;
}
return isOk;
}
/**
* 递归方法 使用递归法从整型数中分离数字
* @param number 输入的数字
* @param num
* @param maxNumber 输入的数字的最大数
* @return 返回是否位数上有含3的数字否
*/
public boolean recursionMax(int number,int num,int maxNumber) {
boolean isOk=false;
if(number<=maxNumber&&number > 0) {
recursion(number/10);
int n=number%10;
if(n==num)
isOk=true;
}
return isOk;
}
}
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
浙公网安备 33010602011771号