⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 排列.java

📁 数字的全排列问题
💻 JAVA
字号:
package 算法;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;


public class 排列 {

	static int num,cont=0;
	public static void main(String [] args) throws IOException{
		int i;
		int a[] = new int[30];
		System.out.println("请输入要进行全排列的数N(N<=9):");
		//读取用户输入的信息
		Reader reader = new InputStreamReader(System.in);

		BufferedReader br = new BufferedReader(reader);

		String str = br.readLine();
		//字符转化为数字
		num = Integer.parseInt(str);

		for(i=1;i<=num;i++)
			a[i]=i;
		perm(a,1);
		//打印总的排列个数
		System.out.println("总共有"+cont+"种方法");

	}

	static int perm(int b[], int i){
		int k,j,temp;
		//如果i=用户输入的数
		if(i==num){
			//直接按顺序打印数组的值
			for(k=1;k<=num;k++)
				System.out.print(b[k]+"   ");
			System.out.println();
			cont++;
		}else
			for(j=i;j<=num;j++){
				//将b[i]与b[j]交换
				temp=b[i];
				b[i]=b[j];
				b[j]=temp;
				//进行下一次排列
				perm(b,i+1);
//				再次将b[i]与b[j]交换
				temp=b[i];
				b[i]=b[j];
				b[j]=temp;
			}
		return(0);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -