2016年蓝桥杯A组java第六题



/**
 * @author Administrator
寒假作业


现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:


   □ + □ = □
   □ - □ = □
   □ × □ = □
   □ ÷ □ = □
   
   (如果显示不出来,可以参见【图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 hanJiaZuoYe {  
    public static int total = 0;  
    public static void swap(int[] str, int i, int j)  
    {  
        int temp ;  
        temp = str[i];  
        str[i] = str[j];  
        str[j] = temp;  
    }  
    public static void arrange (int[] str, int st, int len)  
    {  
        if (st == len - 1)  
        {  
            if((str[1]+str[0]==str[2])&&(str[3]-str[4]==str[5])&&(str[6]*str[7]==str[8])&&
            (str[9]/str[10]==str[11])&&(str[9]%str[10]==0)){
            for (int i = 0; i < len; i ++)  
                    { 
            System.out.print(str[i]+ "  "); 
               }
            System.out.println();  
            total++;  
            }  
        }  
        else  
        {  
            for (int i = st; i < len; i ++)  
            {  
                swap(str, st, i);  
                arrange(str, st + 1, len);  
                swap(str, st, i);  
            }  
        }  
          
    }  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
         int str[] = {1,2,3,4,5,6,7,8,9,10,11,12,13};  
         arrange(str, 0, str.length);  
         System.out.println(total);  
    }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值