• 暴力大法好



    标题:神奇算式

    由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。

    比如:

    210 x 6 = 1260
    8 x 473 = 3784
    27 x 81 = 2187

    都符合要求。

    如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。

    请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。

    #include <algorithm>
    #include <cstdio>
    using namespace std;
    int vis[9999]={0};
    bool Compare(int rec,int A, int B)
    {
        int a[5], b[5];
        int cnt=0;
        while(rec){a[cnt++]=rec%10; rec/=10;}
        int tot=0;
        while(A){b[tot++]=A%10; A/=10;}
        while(B){b[tot++]=B%10; B/=10;}
        sort(a, a+cnt);
        sort(b, b+tot);
        int  i;
        for(i=0; i<cnt; i++) if(a[i]!=b[i]) break;
        if(i==cnt) return true;
        else return false;
    }
    int main()
    {
        int t=0;
        for(int i=1; i<=9; i++)
      {
    for(int j=1; j<=9; j++) { for(int k=0; k<=9; k++) { for(int o=0; o<=9; o++) { if(j!=k && j!=o && k!=o && i!=j && i!=k && i != o) { int sum=j*100+k*10+o; int Q=i*sum; if(Q>=1000&&Q<=9999) { if(Compare(Q, sum, i)&& (!vis[sum] || !vis[i])) { vis[sum]=1; vis[i]=1; t++; printf("%d %d ", i, sum); } } } } } } }  for(int i=1; i<=9; i++) { for(int j=0; j<=9; j++) { for(int k=1; k<=9; k++) { for(int o=0; o<=9; o++) { if(j!=k && j!=o && k!=o && i!=j && i!=k && i != o) { int sum1=i*10+j; int sum=k*10+o; int Q=sum1*sum; if(Q>=1000&&Q<=9999) { if(Compare(Q, sum, sum1)&& (!vis[sum] || !vis[sum1])) { vis[sum]=1; vis[sum1]=1; t++; printf("%d %d ", sum1, sum); } } } } } } } printf("%d ", t); return 0; }
  • 相关阅读:
    作为管理者的基本职责
    websocket接口自动化的封装
    locust性能测试的使用
    git的协作提交流程
    关于接口自动化的实施步骤
    K8S的组件梳理
    jenkins pipeline中,失败后获取异常不中断业务
    pipline在执行的docker镜像中添加hosts
    sonar搭建
    django
  • 原文地址:https://www.cnblogs.com/soTired/p/5296178.html
Copyright © 2020-2023  润新知