62,614
社区成员
发帖
与我相关
我的任务
分享
public class Main {
public static void main(String[] args) {
int[] numbers = new int[8];
//爆破开始
for(int i = 1; i <= 9; i++) {
for(int j = 1; j <= 9; j++) {
for(int k = 1; k <= 9; k++) {
for(int l = 1; l <= 9; l++) {
for(int m = 1; m <= 9; m++) {
for(int n = 1; n <= 9; n++) {
for(int p = 1; p <= 9; p++) {
for(int q = 1; q <= 9; q++) {
numbers[0] = i;
numbers[1] = j;
numbers[2] = k;
numbers[3] = l;
numbers[4] = m;
numbers[5] = n;
numbers[6] = p;
numbers[7] = q;
if(validate(numbers)) {
System.out.println(i + " + " + j +" = 9");
System.out.println(k + " - " + l + " = 1");
System.out.println(m + " + " + n + " = 7");
System.out.println(p + " - " + q + " = 2");
System.out.println("-------------------------");
}
}
}
}
}
}
}
}
}
}
private static boolean validate(int[] nums) {
//if是为了判断数值是否满足四个表达式
if( (nums[0] + nums[1] == 9) &&
(nums[2] - nums[3] == 1) &&
(nums[4] + nums[5] == 7) &&
(nums[6] - nums[7] == 2) ) {
//这个循环是为了判断是否有重复数字出现,查找算法
for(int i = 0; i < nums.length; i++) {
for(int j = i+1; j < nums.length; j++) {
if(nums[i] == nums[j]) {
return false;
}
}
}
return true;
}
return false;
}
}
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int a[8]={1,2,3,4,5,6,7,8};
while(next_permutation(a,a+8)){
if((a[0]+a[1]==9)&&(a[2]-a[3]==1)&&(a[4]+a[5]==7)&&(a[6]-a[7]==2)){
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<" "<<a[6]<<" "<<a[7]<<endl;
}
}
return 0;
}
public class Test{
public static void main(String[] args){
int[] numbers = {1,2,3,4,5,6,7,8,9};
process(numbers);
}
private static void process(int[] numbers){
process(numbers,0);
}
private static void process(int[] numbers,int index){
if(index == numbers.length){
return ;
}
int temp = 0;
for(int i = 0 ; i < numbers.length ; i ++){
temp = numbers[index];
numbers[index] = numbers[i];
numbers[i] = temp;
process(numbers,index + 1);
temp = numbers[index];
numbers[index] = numbers[i];
numbers[i] = temp;
}
boolean condition1 = (numbers[0] + numbers[1] == 9);
boolean condition2 = (numbers[2] - numbers[3] == 1);
boolean condition3 = (numbers[4] + numbers[5] == 7);
boolean condition4 = (numbers[6] - numbers[7] == 2);
if(condition1&&condition2&&condition3&&condition4){
System.out.printf("==============情况%d开始=============\n",++ count);
System.out.printf("%d + %d = 9\n%d - %d = 1\n%d + %d = 7\n%d - %d = 2\n",numbers[0],numbers[1],numbers[2],numbers[3],numbers[4],numbers[5],numbers[6],numbers[7]);
System.out.printf("==============情况%d结束=============\n",count);
}
}
private static int count = 0;
}