很。。。。杂(持续更新。。。)
1、判断一个整数是不是2的阶次方,例:8,64,256都是2的阶次方
如果一个数是2的阶次方,则它的二进制形式必为10,100,1000.。。。。。将这个数减一后再与该数做&运算,则应该全为0(例:8,二进制1000,8-1=7,二进制111,即((d-1)&d)==0)
2、典型递归
a、把一个数组的数组合全部列出,例1,2,列出来为1,2,12,21
listAll(List list,String pr){
System.out.println(pr);
for(int i = 0;i
List temp = new LinkedList(list);
listAll(temp,pr+temp.remove(i));
}
}
b、斐波那契数列的通项
int k = 0;
public Long fibonacci(Long m){
if(m==0||m==1){
k++;
return m;
}else{
return fibonacci(m-1)+fibonacci(m-2);
}
}