本文已参与[新人创作礼]活动,一起开启崛金创作之路
标题:
算式900 小明的作业本上有道思考题:
看下面的算式:
(□□□□-□□□□)*□□=900
其中的小方块代表09的数字,这10个方块刚好包含了09中的所有数字。
注意:0不能作为某个数字的首位。
小明经过几天的努力,终于做出了答案!如下: (5012-4987)*36=900
用计算机搜索后,发现还有另外一个解,本题的任务就是:请你算出这另外的一个解。
注意:提交的格式需要与示例严格一致; 括号及运算符号不要用中文输入法; 整个算式中不能包含空格。
注意:机器评卷,不要填写任何多余的内容,比如说明文字。
using namespace std;
int a[11]; //用来判断他们的
bool js(int i,int j, int k) //找都满足
{
memset(a, 0, sizeof(a)); //吧所有数归零
int a1,a2;
for(int m=0;m<4;m++)
{
a1=i%10;
a2=j%10;
if(a[a1]==0)
{
a[a1]=1; //赋值为已经用过的
if(a[a2]==0) //判断是否为1
{
a[a2]=1;
}
else return false;
}
else return false; //不满足则返回false
i=i/10;
j=j/10;
}
for(int i=0;i<2;i++) //查找第二个
{
a1=k%10;
if(a[a1]==0)
{
a[a1]=1; //赋值为已经用过的
}
else
{
return false; //不满足则返回false
}
k=k/10; //查找数的下一位
}
return true;
}
int main()
{
int a=900;
int k;
bool blo=false;
for(int i=6000;i<9999;i++) //因为是四位数所以是1000到9999
{
for(int j=5000;j<9999;j++)
{
if(i-j<0) break; //判断是否为小于0 ,如果小于0就不需要执行了
for(int k=10;k<99;k++)
{
long a=(i-j)*k; //计算2值算出来是否满足为900
if(a==900)
{
if(i==5012&&j==4987&&k==36) break;
bool bol=js(i,j,k); //返回是否为所判断的条件
if(bol==true)//如果执行条件为成功就输出
{
cout<<"("<<i<<"-"<<j<<")"<<"*"<<k<<endl;
}
}
}
}
}
return 0;
}

本文已参与[新人创作礼]活动,一起开启崛金创作之路