1.分解质因子
//分解质因子:6=2*3
public class IntegerSplitFactor {
public static void main(String[] args) {
int m=90;
System.out.print(m+"=");
split(m,0);
}
//递归思想如下:
/* 90
* 2 45
* 3 15
* 3 5
*/
public static void split(int m,int n){
if(m==1){
System.out.println(n);
return;
}else if(n!=0){//第一次进来不执行
System.out.print(n+"*");
}
for(int i=2;i<=m;i++){
if(m%i==0){
split(m/i,i);
return;
}
}
}
}
2.全排列
import java.util.Arrays;
/**
* 全排列
* @author Administrator
*
*/
public class Permutation {
public static void main(String[] args) {
int[] source=new int[]{1,2,3,4,5};
permutation(source, 0);
System.out.println(count);
}
static int count=0;
/**
*
* @param source
* @param si 开始全排列的下标位置
*/
public static void permutation(int[] source,int si){
if(si==source.length){
System.out.println(Arrays.toString(source));
count++;
return;
}
//当前元素依次与从当前位置开始到结束位置的所有元素交换
for(int i=si;i<source.length;i++){
swap(source,si,i);//交换
permutation(source, si+1);
swap(source,si,i);
}
}
/**
* 交换位置
* @param source
* @param i
* @param j
*/
public static void swap(int[] source,int i,int j){
int tmp=source[i];
source[i]=source[j];
source[j]=tmp;
}
}