蓝桥杯----凑算式

这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

比如:

6+8/3+952/714 就是一种解法,

5+3/1+972/486 是另一种解法.

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

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

代码

java 复制代码
public class _03凑算式 {
    static int a[] = {1,2,3,4,5,6,7,8,9};
    static int ans;
    static boolean check() {
        int x = a[3] * 100 + a[4] * 10 + a[5];
        int y = a[6] * 100 + a[7] * 10 + a[8];
        if ((a[1] * y + a[2] * x) % (y * a[2]) == 0 && a[0] + (a[1] * y + a[2] * x) / (y * a[2]) == 10) {
            return true;
        }
        return false;
    }

//  递归回溯生成全排列,适用于无重复元素的情况
//  考虑第k位,前面已排定
    static void f(int k){
        if(k == 9){//一种排列已经生成
            if(check()){
                ans++;
            }
        }
//        从k往后的每个数字都可以放在k位
        for (int i = k; i < 9; i++) {
            {int t = a[i];a[i] = a[k];a[k] = t;}
            f(k + 1);//递归
            {int t = a[i];a[i] = a[k];a[k] = t;}//回溯
        }
    }

    public static void main(String[] args) {
        f(0);
        System.out.println(ans);
    }
}

结果:29

相关推荐
罗湖老棍子13 分钟前
【区间DP】括号序列:如何求解最长合法子序列?(POJ 2955)
算法·动态规划·区间dp·区间动态规划·端点匹配型
王德博客17 分钟前
【实现常见排序算法】直接插入排序的算法思想
数据结构·算法·排序算法
serve the people18 分钟前
python环境搭建 (六) Makefile 简单使用方法
java·服务器·python
m0_5648768418 分钟前
分布式训练DP与DDP
人工智能·深度学习·算法
纤纡.19 分钟前
逻辑回归实战进阶:交叉验证与采样技术破解数据痛点(一)
算法·机器学习·逻辑回归
重生之后端学习21 分钟前
146. LRU 缓存
java·数据结构·算法·leetcode·职场和发展
程曦曦23 分钟前
原地删除有序数组重复项:双指针法的艺术与实现
数据结构·算法·leetcode
萧曵 丶23 分钟前
懒加载单例模式中DCL方式和原理解析
java·开发语言·单例模式·dcl
你怎么知道我是队长24 分钟前
C语言---排序算法6---递归归并排序法
c语言·算法·排序算法
回忆是昨天里的海26 分钟前
k8s部署的微服务动态扩容
java·运维·kubernetes