1. 程式人生 > >藍橋杯——湊算式

藍橋杯——湊算式

for using end iostream fun + - 藍橋杯 sum include

湊算式

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;
}

藍橋杯——湊算式