不能用除法,要求计算出商 和 余数
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;
}

浙公网安备 33010602011771号