1、BigInteger的方法
System.out.println(a.add(b));//大整数加法
System.out.println(a.subtract(b));//减法
System.out.println(a.multiply(b));//乘法
System.out.println(a.divide(b));//除法
System.out.println(a.remainder(b));//取模
//大整数的比较
if(a.compareTo(b) == 0)
System.out.println("a == b");
else if(a.compareTo(b) > 0)
System.out.println("a > b");
else if(a.compareTo(b) < 0)
System.out.println("a < b");
//大整数的绝对值
System.out.println(a.abs());
//计算大整数的幂次方
int exp = 10;
System.out.println(a.pow(exp));
//返回大整数十进制的字符串表示
System.out.println(a.toString());
//返回大整数p进制的字符串表示
int p = 8;
System.out.println(a.toString(p));
求一个数n的公因数 队列用HashSet
for(int i =0 ;i<=n的平方;i++){
if(n%i==0){
队列.add(i);
队列.add(n/i);
}
}
下面是数组复制方法
A.用循环语句逐个复制数组
B.用方法arraycopy
D.用clone方法
1. Arrays.sort(arr); // 对arr数组从小到大排序
2. while(s.hasNext()){
}; // 接受不定数量的数
3. int X=Integer.parseInt(x); //将数字字符串转化为整数型
4. char[] Count=count.toCharArray(); //分割字符串
比较a与b是否相同 a.matches(b) 正确输出true
A.charAt(0) 取A字符串中下标为0的字符
StringBuilder 中有两个比较好的方法:append reverse 所以可将string转换一下用方法
拼接
StringBuilder sc=new StringBuilder(”12345”);
sc.append(“789”).append(“10”);
反转
sc.reverse();
转化
String s=sc.toString();
StringBuilder sc=new StringBuilder(s);
可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。(自身调用)
存在一种简单情境,可以使递归在简单情境下退出。(递归出口)
def f(mode):
if end_condition: # 递归出口
end
else:
f(mode_small) # 递归本身,递归
def fibonacci(i):
"""斐波那契数列"""
if i <= 2:
return 1
else:
return fibonacci(i-1) + fibonacci(i-2)
def monkey(n):
"""猴子分桃"""
if n == 1:
return 1
else:
return (monkey(n-1)+1)*2
def hanoi(n, a, b, c): # a为初始位,b为过渡位,c为目标位
"""汉诺塔"""
if n == 1:
print(a, '-->', c)
else:
hanoi(n-1, a, c, b) # 初始位为a,通过c移动到b
print(a, '-->', c)
hanoi(n-1, b, a, c) # 初始位为b,通过a移动到c