zoukankan      html  css  js  c++  java
  • [蓝桥杯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;
    }
  • 相关阅读:
    开发金额处理BigDecimal
    Strtuts2.3.15 bug ,可以远程执行命令
    java 获取properies资源信息
    获取程序运行所在ip
    JVM虚拟机内存和String 类型深入
    数据库表结构上下文
    properties配置文件实现DBManager
    查询功能的包装类
    通过反射生成类的utils
    jdbc反射操作
  • 原文地址:https://www.cnblogs.com/-citywall123/p/12345705.html
Copyright © 2011-2022 走看看