凑算式
B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
/** * @author 余正红 * 2019年12月6日 */ package 蓝桥杯真题; import java.util.concurrent.CountDownLatch; public class 凑算式 { /** * @param args */ static int [] art = {1,2,3,4,5,6,7,8,9}; static int [] brt = new int[9]; public static int count = 0; public static void print()//输出结果 { for(int i=0;i<9;i++) { System.out.print(art[i]+" "); } System.out.println(); } public static void sum() { int a = art[0]; int b = art[1]; int c = art[2]; int def = art[3]*100+art[4]*10+art[5]; int ghi = art[6]*100+art[7]*10+art[8]; double sum = (double)a+((double)(b*ghi+c*def))/(c*ghi);//通分 if(sum == 10.0) { print();//输出满足条件的式子 count++; } } public static void swap(int size)//全排列 { if(size == 0) { sum(); return; } else { for(int i=0;i<=size;i++) { int t = art[i]; art[i]=art[size]; art[size] = t; swap(size-1); t = art[i]; art[i] = art[size]; art[size] = t; } } } public static void main(String[] args) { // TODO Auto-generated method stub swap(8); //print(); } }