• [蓝桥杯2017初赛]9数算式


    题目描述

    观察如下的算式:9213 x 85674 = 789314562 
    左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。 
    而乘积恰好也是用到了1~9的所有数字,并且每个1次。 
    请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个? 
    注意: 
    1. 总数目包含题目给出的那个示例。 
    2. 乘数和被乘数交换后作为同一方案来看待。 

    输出

    输出一个整数表示答案

    答案:1625

    题解:全排列之后,用for循环枚举乘数和被乘数,用map标记符合条件的组合

    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<math.h>
    #include<string.h>
    #include<map>
    #include<stack>
    #include<queue>
    #define ll long long
    using namespace  std;
    int vis[10];
    map<ll,int>mp;
    int main()
    {
        int a[9]={1,2,3,4,5,6,7,8,9};
        int cnt=0;
        do
        {
            for(int i=1;i<9;i++)
            {
                ll ans,l=0,r=0,t=0,x=0,y=0;
                memset(vis,0,sizeof(vis));
                for(int j=0;j<=i;j++)
                    l=l*10+a[j];
                x=l;
                x=x*10;
                for(int k=i+1;k<9;k++)
                {
                    r=r*10+a[k];
                    x=x*10+a[k];
                }
                y=r;
                y=y*10;
                for(int j=0;j<=i;j++)
                    y=y*10+a[j];
                
                ans=l*r;
                ll ff=ans;
                while(ans)
                {
                    int temp=ans%10;
                    ans=ans/10;
                    if(vis[temp]==0&&temp!=0)
                    {
                        vis[temp]=1;
                        t++;
                    }
                }
                if(t==9&&mp.count(x)==0&&mp.count(y)==0)
                {
                    cnt++;
                    mp[x]=1;
                    mp[y]=1;
                    //cout<<l<<"   "<<r<<"    "<<ff<<endl;
                }
            }
        }while(next_permutation(a,a+9));
        cout<<cnt<<endl;
        return 0;
    }
  • 相关阅读:
    精选文章
    Eclipse Git插件切换分支的时候不要Reset
    Spring ContentNegotiatingViewResolver
    Spring3 MVC 类型转换
    FTP DOS 命令行
    Java xml 解析
    Java 实现FTP上传和下载
    Hibernate update 和 merge 、saveOrUpdate的区别
    Spring MVC 文件下载时候 发现IE不支持
    Javasript 正则匹配任意字符
  • 原文地址:https://www.cnblogs.com/-citywall123/p/12345705.html
Copyright © 2020-2023  润新知