寒假作业

来源:互联网 发布:淘宝曝光量是什么意思 编辑:程序博客网 时间:2024/04/30 10:53

寒假作业,下面出现了这样的寒假作业

()+()=();

 ()-()=();

()*()=();

()/()=();

请将1-112个数字填入这些空格中,然后是这些等式成立

请你利用计算机的优势,计算出一共多少种方案

并且将所有的方案试出来

答案:64

#include<algorithm>

#include<iostream>

using namespace std;

int a[13];

int book[13];

int ncount=0;

void show()

{

cout<<a[0]<<"+"<<a[1]<<"="<<a[2];

cout<<" ";

cout<<a[5]<<"-"<<a[4]<<"="<<a[3];

cout<<" ";

cout<<a[6]<<"*"<<a[7]<<"="<<a[8];

cout<<" ";

cout<<a[11]<<"/"<<a[10]<<"="<<a[9];

cout<<endl;

}

int check(int step)

{

if(step==2)

if(a[0]+a[1]!=a[2])

return 0;

if(step==5)

if(a[5]-a[4]!=a[3])

return 0;

if(step==8)

if(a[6]*a[7]!=a[8])

return 0;

if(step==11)

if(a[9]*a[10]!=a[11])

return 0;

return 1;

}

int fun(int step)

{

if(step==12&&check(step)==1)

{

ncount++;

show();

return 0;

}

for(int i=0;i<13;i++)

{

if(book[i]==0)

{

a[step]=i+1;

if(check(step)==1)

{

book[i]=1;

fun(step+1);

book[i]=0;

}

}

}

return 0;

}

int main()

{

fun(0);

cout<<ncount<<endl;

return 0;

}

0 0