寒假作业

本文解析了一道小学寒假作业中的数学题,该题要求利用1到13的数字填空并满足特定运算条件,且数字不可重复使用。通过编写递归算法实现了全排列的搜索,并统计了所有符合条件的解法数量。

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

寒假作业


现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:
   □ + □ = □
   □ - □ = □
   □ × □ = □
   □ ÷ □ = □
每个方块代表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 Test {
	public static int count = 0;
	
	public static void main(String[] args) {
		int[]array = {1,2,3,4,5,6,7,8,9,10,11,12,13};
		arrange(array,0);
		System.out.println(count);
	}
	
	//全排列
	public static void arrange(int[]array,int index)
	{
		
		if(index > 2)
		{
			if(array[0]+array[1] != array[2])
			{
				return;
			}
		}
		
		if(index > 5)
		{
			if(array[3]-array[4] != array[5])
			{
				return;
			}
		}
		
		if(index > 8)
		{
			if(array[6]*array[7] != array[8])
			{
				return;
			}
		}
		
		if(index > 11)
		{
			if(array[9]*1.0/array[10]!=(1.0*array[11]))
			{
				return;
			}
		}
		
		//条件满足时则完成一次全排列
		if(index>=array.length)
		{
			count++;
		}
		else
		{
			for(int first = index;first < array.length;first++)
			{
				swap(array,first,index);
				arrange(array,index+1);
				swap(array,first,index);
			}
		}
	}
	
	//交换
	public static void swap(int[] array,int i,int j)
	{
		int temp = array[i];
		array[i] = array[j];
		array[j] = temp;
	}
	
	//判断和是否为1-13
	public static boolean isRight(int[]array,int sum)
	{
		for(int temp:array){
			if(temp == sum){
				return true;
			}
		}
		return false;
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值