前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java实现全排列模板-算法题必备

Java实现全排列模板-算法题必备

原创
作者头像
CaesarChang张旭
修改2021-02-04 10:03:27
3750
修改2021-02-04 10:03:27
举报
文章被收录于专栏:悟道悟道

如下是模板哈:

代码语言:javascript
复制
import java.util.Scanner;
public class Main {
	static int arr[]= {1,2,3,4,5,6,7,8,9};  //题目中看是从0开始还是从1开始
	static int ans=0;
	public static void main(String[] args) {
	
		f(0);
		System.out.println(ans);
		
	}

	private static void f(int k) {
		 		if(k==9) {
			 if(check()) {
				 ans++;
			 }	
				 }
		
		 
//		 确定第k位
		 for(int i=k;i<9;i++) {
			 //交换
			 int temp=arr[i];
			 arr[i]=arr[k];
			 arr[k]=temp;
			 //递归确定第k+1位
			 f(k+1);
			 //回溯
			  temp=arr[i];
			 arr[i]=arr[k];
			 arr[k]=temp;
		
	}
    }

	private static boolean check() {
		
		if(((arr[1]*(arr[6]*100+arr[7]*10+arr[8])+arr[3]*100+arr[4]*10+arr[5]*arr[2])%(arr[2]*(arr[6]*100+arr[7]*10+arr[8])))==0&&(arr[0]+
				((arr[1]*(arr[6]*100+arr[7]*10+arr[8])+arr[3]*100+arr[4]*10+arr[5]*arr[2])/(arr[2]*(arr[6]*100+arr[7]*10+arr[8]))))==10){
			System.out.println("a"+arr[0]+"b"+arr[1]+"c"+arr[2]+"d"+arr[3]+"e"+arr[4]+"f"+arr[5]+"g"+arr[6]+"h"+arr[7]+"i"+arr[8]);
			
			return true;
		}
		
		return false;
		
		
	}
}  

其中的 check里面的条件可以改变,看题目来,

上面的 f 基本固定

arr看题,从0还是从1开始, 然后就是如果是从0开始的话,f里面的k==10 在开始判断

文中check里面实现的是 这个条件哈

​拜了个拜!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 其中的 check里面的条件可以改变,看题目来,
  • 上面的 f 基本固定
  • arr看题,从0还是从1开始, 然后就是如果是从0开始的话,f里面的k==10 在开始判断
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档