蓝桥杯报的c可以用java写吗_2016蓝桥杯javaA组算法第六题,用Java运行不出来改成C可以...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package TrueTest;

/**

* Created by WangJianhai on 2017/4/2 15:46.

*/

//寒假作业

//

// 现在小学的数学题目也不是那么好玩的。

// 看看这个寒假作业:

//

// □ + □ = □

// □ - □ = □

// □ × □ = □

// □ ÷ □ = □

//

// (如果显示不出来,可以参见【图1.jpg】)

//

// 每个方块代表1~13中的某一个数字,但不能重复。

// 比如:

// 6 + 7 = 13

// 9 - 8 = 1

// 3 * 4 = 12

// 10 / 2 = 5

//

// 以及:

// 7 + 6 = 13

// 9 - 8 = 1

// 3 * 4 = 12

// 10 / 2 = 5

//

// 就算两种解法。(加法,乘法交换律后算不同的方案)

//

// 你一共找到了多少种方案?

//

//

// 请填写表示方案数目的整数。

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

public class Test6_BackTrack {

public static int[][] grid = new int[4][3];

public static int[] used = new int[14];

public static int knt = 0;

private static int operate(int i){

int x = grid[i][0];

int y = grid[i][1];

if(i == 0){

if(x + y < 14)

return x + y;

else

return 0;

}

if(i == 1){

if(x - y > 0)

return x - y;

else

return 0;

}

if(i == 2){

if(x * y < 14)

return x * y;

else

return 0;

}

if(i == 3){

if(x % y == 0)

return x % y;

else

return 0;

}

return 0;

}

private static void g(int i, int j){

if(i == 4 && j == 0)

knt++;

else

{

if(j == 2)

{

int x = operate(i);

if(used[x] == 0){

grid[i][j] = x;

used[x] = 1;

g(i+1, 0);

if(x != 0) used[x] = 0;

}

}

else for(int k = 1; k < 14; k++){

if(used[k] == 0){

used[k] = 1;

grid[i][j] = k;

g(i, j+1);

used[k] = 0;

}

}

}

}

public static void main(String[] args) {

used[0] = 1;

new Test6_BackTrack().g(0,0);

System.out.println(knt);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值