不能用除法,要求计算出商 和 余数

public static int[] reDiv(int a,int b){
    int [] arr = new int[2];
    int quotient = 0;
    int remainder = 0;
    while(a>=b){
        a = a-b;
        quotient++;
    }
    remainder = a;
    arr[0] = quotient;
    arr[1] = remainder;
    return arr;
}

给出一个大于等于2的正整数,求出它平方根的整数部分(暂未学java.lang.Math)

private static int getResult(int a) {
    for (int i = 1; ; i++) {
        int fang = i * i;
        if(fang > a){
            return i-1;
        }
    }
}

判断一个给定的正整数数是否为质数(利用Math.sqrt)

public static boolean isPrimeNum(int i){
    //判断一个数是不是质数
    if(i ==1){
        System.out.println("不是质数也不是合数");
        return false;
    }
    if(i==2 || i==3){
        return true;
    }

    for (int j = 2; j <= Math.sqrt(i); j++) {
        if(i%j==0){
            return false;
        }
    }
    return true;
}

数字加密

需求:

  • 某系统的数字密码(大于0),比如1983,采用加密方式进行传输
  • 规则:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数

    代码如下:
public static int encrypt(int i){
    int num = 0;
    while (i > 0) {
        int a = (i % 10 + 5) % 10;
        num = num* 10+a;
        i = i/10;
    }
    return num;
}

对上面数字加密后的数据进行解密

private static int decrypt(int i) {
    int num = 0;
    while (i > 0) {
        int a = i % 10;
        if (a >= 5) {
            num = num * 10 + a - 5;
        } else {
            num = num * 10 + a + 5;
        }
        i = i / 10;
    }
    return num;
}
posted on 2022-11-23 09:22  hack2xia  阅读(42)  评论(0)    收藏  举报