如下是模板哈:
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 删除。