蓝桥杯——凑算式

凑算式

    B      DEF
A + --- + ------- = 10
     C      GHI

1到9做全排列,然后把符合题目意思的输出来

比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。

#include <iostream>
#include <string>
using namespace std;

int a[9] = {1,2,3,4,5,6,7,8,9};
int sum = 0;
int sun(int *a)
{
double nn;
nn = (double)a[0]+(double)a[1]/a[2]+(double)(a[3]*100+a[4]*10+a[5])/(a[6]*100+a[7]*10+a[8]);
if(nn == 10)
{
return 1;
}
else
return 0;
}

void fun(int *a,int m,int n)
{
if(m == 0)
{
if(sun(a) == 1)
{
/*
for(int i=0;i<n;i++)//输出每一种情况
{
cout<<a[i];
}
cout<<endl;
*/
sum++;
}
}
else
{
int t;
for(int j=0;j<=m;j++)
{
t = a[m];
a[m] = a[j];
a[j] = t;
fun(a,m-1,n);
t = a[m];
a[m] = a[j];
a[j] = t;
}
}
}
int main()
{

fun(a,8,9);
cout<<sum<<endl;
return 0;
}

猜你喜欢

转载自www.cnblogs.com/zkw123/p/10502551.html