式のアルゴリズムを改善するためのJAVAカップブルーブリッジ構成

式のアルゴリズムを改善するためのJAVAカップブルーブリッジ構成

資源制約の
制限時間:256.0メガバイト:メモリ制限を1.0秒

問題の説明
  が= 39 X 186 7254として表現することができるように7254は、式1~9、異常な数であり、各数値は一度だけ表示され
  、すべてのそのような異なった式の出力(乗算器は、同一の交換であると考えられます式)
  小出力の結果、同じ結果、小さい第1の小乗算器出力。
  
  
出力フォーマット
  出力の各行式、等号ブランク式、(文字xの代わりに)乗算記号と末尾のスペース前後の
  小さい乗算編集
  
  
サンプル出力
式に問題が結果行に表示されます次のように:
= 39 X 186 7254を

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;



public class Main {
	static int[] a=new int[9];
	static ArrayList<String> set=new ArrayList<String>();
	public static void main(String[] args) {
		Scanner sca=new Scanner(System.in);
		dfs(0);
		
		Collections.sort(set);
		for(String s:set) {
			System.out.println(s);
		}
	}
	public static void dfs(int k) {
		//System.out.println(a);
		if(k==9) {
			int sum1=a[0]*1000+a[1]*100+a[2]*10+a[3];
			int sum2=a[4]*10+a[5];
			int sum3=a[6]*100+a[7]*10+a[8];
			if(sum1==sum2*sum3) {
				String temp=sum1+" = "+sum2+" x "+sum3;
				set.add(temp);
			}
			int sum4=a[4];
			int sum5=a[5]*1000+a[6]*100+a[7]*10+a[8];
			if(sum1==sum4*sum5) {
				String temp=sum1+" = "+sum4+" x "+sum5;
				set.add(temp);
			}
			return;
		}
		for(int i=0;i<9;i++) {
			if(a[i]==0) {
				a[i]=k+1;
				dfs(k+1);
				a[i]=0;
			}
		}
	}
	
}


公開された17元の記事 ウォンの賞賛0 ビュー378

おすすめ

転載: blog.csdn.net/qq_36551453/article/details/104461561