第七届蓝桥杯 JavaB 凑算式

第七届蓝桥杯 JavaB 凑算式


凑算式
在这里插入图片描述

这个算式中AI代表19的数字,不同的字母代表不同的数字。

比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?

注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。


答案: 29
法一: 思路:
给9个字母编号,dfs,检查合法则count++。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

/**
 * 
 * @description TODO
 * @author frontier
 * @time 2019年3月11日 下午5:45:20
 *
 */
public class 结果填空3凑算式 {
	static int n;
	static boolean[] vis = new boolean[10];
	static double[] a = new double[10];
	static int count;
	static double temp;
	static int num;

	public static void main(String[] args) throws FileNotFoundException {
		Scanner in = new Scanner(new File("src/JavaB/s7/3.txt"));
		dfs(0);
		System.out.println(count);
	}

	static void dfs(int n) {
		if (n == 9) {
			temp = a[1] + a[2] / a[3] + (a[4] * 100 + a[5] * 10 + a[6]) / (a[7] * 100 + a[8] * 10 + a[9]);
			if (Math.abs(temp - 10) < 1e-9)
				count++;
			return;
		}

		for (int i = 1; i <= 9; ++i) {
			if (!vis[i]) {
				vis[i] = true;
				a[n + 1] = i;
				dfs(n + 1);
				vis[i] = false;
			}
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值