蓝桥杯——凑算式

凑算式

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

 

posted @ 2019-03-09 19:08  池塘之底  阅读(192)  评论(0编辑  收藏  举报