蛮力法/兵炮车卒马分别代表不同的数字

本文介绍了一个算法,用于解决象棋算式的谜题,通过枚举不同棋子的组合,找出它们各自代表的数字,满足特定的加法等式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package xcrj.kchalgorithm.bruteForce;

/**
 * 在象棋算式里,不同的棋子代表不同的数,有以下算式,设计一个算法求这些棋子各代表哪些数字。
 * 兵 炮 马 卒
 * +
 * 兵 炮 车 卒
 * --------------
 * 车 卒 马 兵 卒
 */
public class ChessFormula {

    public static void main(String[] args) {

        // a是兵
        for (int a = 0; a < 10; a++) {
            // b是炮
            for (int b = 0; b < 10; b++) {
                // c是马
                for (int c = 0; c < 10; c++) {
                    // d是卒
                    for (int d = 0; d < 10; d++) {
                        // e是车
                        for (int e = 0; e < 10; e++) {
                            // 车 卒 马 兵 卒 分别代表不同的数字,互不相同,从5个中选两个相等的,共有C^2_5
                            if (a == b) continue;
                            if (a == c) continue;
                            if (a == d) continue;
                            if (a == e) continue;

                            if (b == c) continue;
                            if (b == d) continue;
                            if (b == e) continue;

                            if (c == d) continue;
                            if (c == e) continue;

                            if (d == e) continue;
                            if ((a * 1000 + b * 100 + c * 10 + d) + (a * 1000 + b * 100 + e * 10 + d) == (e * 10000 + d * 1000 + c * 100 + a * 10 + d))
                                System.out.println("兵:" + a + " 炮:" + b + " 马:" + c + " 卒:" + d + " 车:" + e);
                        }
                    }
                }
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值