【象棋算式】
兵 炮 马 卒
+
兵 炮 车 卒
车 卒 马 兵 卒
请问这个用java语言怎么设计 真的不懂 感谢
public class Main{
public static void main(String []args){
//设计一个算法求象棋这些棋子各代表哪些数
int a, b, c, d, e, m, n, s; //设兵为a,炮为b,马为c,车为d,卒为e
for (a = 1; a <= 9;a++) {
for (b = 0; b <= 9;b++) {
for (c = 0; c <= 9;c++) {
for (d = 0; d <= 9;d++) {
for (e = 0; e <= 9;e++) {
if (a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e) {
continue;
}else{ //代入象棋算式中
m = a * 1000 + b * 100 + c * 10 + d;
n = a * 1000 + b * 100 + e * 10 + d;
s = e * 10000 + d * 1000 + c * 100 + a * 10 + d;
if (m+n==s) {
System.out.println("兵="+ a); System.out.println("炮="+ b); System.out.println("马="+ c); System.out.println("车="+ d); System.out.println("卒="+ e); } }
}
}
}
}
}
}
}
请参考,哪里没看明白,可以艾特我
public class xiangqi {
public static void main(String[] args) {
//因为数量不大,所以使用遍历来实现
int bing,pao,ma,zu,che;
for(int i=1000;i<=9999;i++){
//兵 炮 马 卒
//就代表i 的四位数
bing=i/1000;
pao=(i%1000)/100;
ma=(i%100)/10;
zu=i%10;
//兵 炮 车 卒
//因为车未知,所以 我们遍历一下他,让他作为0-9出现
for(che =0;che<=9;che++){
//然后两个结果数相加
// i=兵 炮 马 卒
int n=i+ bing*1000+pao*100+che*10+zu;
//将得到的结果与 车 卒 马 兵 卒进行比较,相同就说明对了,不相同就代表错了
if(n==(che*10000+zu*1000+ma*100+bing*10+zu)){
System.out.println("结果:车="+che+" 兵="+bing+" 炮="+pao+" 马="+ma+" 卒="+zu);
}
}
}
}
}