蓝桥杯—— 凑算式

凑算式

 B      DEF

A + — + ——- = 10
C GHI

(如果显示有问题,可以参见【图1.jpg】)

这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

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

这个算式一共有多少种解法?

注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
暴力上代码:

#include<iostream>
#include<cstring>
#include<cstdio> 
using namespace std;
int main()
{
    double a[10]={1,2,3,4,5,6,7,8,9};
    int ans=0;
    for(int i=0;i<9;i++)
    {
        for(int j=0;j<9;j++)
        {
            if(j==i)continue;
            for(int k=0;k<9;k++)
            {
                if(k==i||k==j)continue;
                for(int l=0;l<9;l++)
                {
                    if(l==i||l==j||l==k)continue;
                    for(int m=0;m<9;m++)
                    {
                        if(m==i||m==j||m==k||m==l)continue;
                        for(int n=0;n<9;n++)
                        {
                            if(n==i||n==j||n==k||n==l||n==m)continue;
                            for(int o=0;o<9;o++)
                            {
                                if(o==i||o==j||o==k||o==l||o==m||o==n)continue;
                                for(int p=0;p<9;p++)
                                {
                                    if(p==i||p==j||p==k||p==l||p==m||p==n||p==o)continue;
                                    for(int q=0;q<9;q++)
                                    {
                                        if(q==i||q==j||q==k||q==l||q==m||q==n||q==o||q==p)continue;
                                        if(a[i]+a[j]/a[k]+(a[l]*100+a[m]*10+a[n])/(a[o]*100+a[p]*10+a[q])==10)ans++;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

对没错!就这么暴力。
答案得29

猜你喜欢

转载自blog.csdn.net/wanglin007/article/details/81367818