蓝桥杯 猜算式 解题报告



看下面的算式:


□□ x □□ = □□ x □□□


它表示:两个两位数相乘等于一个两位数乘以一个三位数。


如果没有限定条件,这样的例子很多。


但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。
该算式中1至9的每个数字出现且只出现一次!


比如:
46 x 79 = 23 x 158
54 x 69 = 27 x 138
54 x 93 = 27 x 186
.....


请编程,输出所有可能的情况!


注意:
左边的两个乘数交换算同一方案,不要重复输出!

不同方案的输出顺序不重要


在这个等式中,其实就是差一个倍数,而且三位数一定比两位数大,我们假设这四个数分别是a1,a2,b1,b2,其中b2为三位数,那么b2/a2=a1/b1,所以我们只要事先确定好a2和b1,再枚举倍数,最后再加上题目中的各种限制条件,比如数字中不能含有0,不重复等,就能求出所需要的等式,值得注意的是,倍数不一定是整数,但也不会是很复杂的小数,就按照每次增加0.5就可以,因为两位数乘以一个小数要想还是两位整数的话,这个小数最多只能有一位(根据题目中的约数条件),如果不放心,可以将增量减小到0.1,被忘了判断乘出来的数是不是整数哦。

#include<iostream>
using namespace std;
bool judge0(int n)
{
	int a,b,c;
	a=n%10;
	n=n/10;
	b=n%10;
	n=n/10;
	c=n%10;
	if(a==0||b==0||c==0)
	return 1;
	return 0;
}

bool judgeR(int n1,int n2,int n3,int n4)
{
	int num[10]={0};
	int a1,a2;
	int b1,b2;
	int c1,c2;
	int d1,d2,d3;
	
	a1=n1%10,n1=n1/10,a2=n1%10;
	b1=n2%10,n2=n2/10,b2=n2%10;
	c1=n3%10,n3=n3/10,c2=n3%10;
	d1=n4%10,n4=n4/10,d2=n4%10,n4=n4/10,d3=n4%10;
	num[a1]++,num[a2]++,num[b1]++,num[b2]++,num[c1]++,num[c2]++,num[d1]++,num[d2]++,num[d3]++;
	for(int i=1;i<10;i++)
	{
		if(num[i]>=2)
		return 1;
	}
	return 0;
}
int main()
{
	int cas=0;
	int i,j;
	double a1,a2,b1,b2;
	double k;
	for(i=50;i<=99;i++)
	{
		if(i%10==0||i%11==0)
		continue;
		for(j=10;j<=49;j++)
		{
			if(j%10==0||j%11==0)
			continue;
			a2=i;
			b1=j;
			for(k=1.5;k<=9.5;k=k+0.5)
			{
				a1=b1*k;
				if((int)a1%10==0||(a1-(int)a1)!=0)
				continue;
				b2=a2*k;
				if(judge0(b2)||(b2-(int)b2)!=0)
				continue;
				if(a1>99||b2>999)
				continue;
				if(judgeR(a1,a2,b1,b2))
				continue;
				cas++;
				cout<<a1<<" * "<<a2<<" = "<<b1<<" * "<<b2<<endl; 
			}
		}
	}
	cout<<cas;
	return 0;
}









  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch 是一个基于Python的机器学习库,它提供了许多用于开发深度学习模型的工具和算法。在算式识别中,PyTorch 可以用于训练一个神经网络模型,对输入的算式进行识别和解析。 算式识别是指将输入的数学算式转换为计算机可识别的形式,通常包括识别算式的各个元素(如数字、运算符)和确定它们之间的关系。PyTorch 可以通过使用多层的神经网络模型来实现算式识别。 首先,需要准备一个合适的训练数据集,包括正例(正确的算式)和负例(错误的算式)。然后,利用PyTorch提供的工具和函数,构建一个神经网络模型。可以选择使用卷积神经网络(CNN)或循环神经网络(RNN)等结构。 训练过程中,需要先将数据集划分为训练集和测试集。通过将训练集输入到神经网络中,进行反向传播和优化,使网络能够逐渐学习到正确的算式识别方式。在每次迭代中,可以使用损失函数来评估模型的性能,并根据损失函数的结果调整模型的参数。 完成网络训练后,可以使用测试集来验证模型在未知数据上的表现。将测试集输入到训练好的模型中,通过模型的输出来进行算式识别。 通过PyTorch提供的函数和工具,我们可以实现对算式的自动识别和解析。这样就可以将输入的算式转换为计算机能够理解和处理的形式,从而实现更便捷和高效的数学计算和问题求解。 总而言之,PyTorch 可以用于算式识别,通过训练神经网络模型来实现对输入算式的自动识别和解析。这样可以方便地将算式转换为计算机可理解的形式,为数学计算和问题求解提供支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值