本文主要是介绍火柴游戏java版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码
/*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @author Hyl* @version V 0.1* @since 0.1 2020-06-03 16:10*/
public class MatchGame {private int getMatchCount(int x) {int sum = 0;// 组成0-9数字时,火柴的根数int[] numCount = new int[] {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};while (x / 10 != 0) {//取末尾sum += numCount[x % 10];x = x / 10;}//这里x一定是个位数了sum += numCount[x];return sum;}private void gameBegin(int matchCount) {int a, b, c, total=0;for (a = 0; a <= 1111; a++) {for (b = 0; b <= 1111; b++) {c = a + b;if (getMatchCount(a) + getMatchCount(b) + getMatchCount(c) == matchCount - 4) {total++;System.out.println(a+"(A)+"+b+"(B)="+c+"(C)");}}}System.out.println("total:+"+total);}public static void main(String[] args) {MatchGame matchGame = new MatchGame();matchGame.gameBegin(18);}}
结果
0(A)+4(B)=4(C)
0(A)+11(B)=11(C)
1(A)+10(B)=11(C)
2(A)+2(B)=4(C)
2(A)+7(B)=9(C)
4(A)+0(B)=4(C)
7(A)+2(B)=9(C)
10(A)+1(B)=11(C)
11(A)+0(B)=11(C)
total:+9
这篇关于火柴游戏java版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!