• [蓝桥杯] 马虎的算式


    [蓝桥杯] 马虎的算式

        小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

        有一次,老师出的题目是:36 x 495 = ?

        他却给抄成了:396 x 45 = ?

        但结果却很戏剧性,他的答案竟然是对的!!

        因为 36 * 495 = 396 * 45 = 17820

        类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54

        假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)

        能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?


    请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。

    满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。

    【题解】

    没啥好说的,直接暴力,枚举所有情况。

    【代码 C++】 

     1 #include<cstdio>
     2 #include<cstring>
     3 bool w[15];
     4 int main(){
     5     int s=0, a, b, c, d, e, now,temp;
     6     for (now = 11111; now < 99999; ++now){
     7         memset(w, 0, sizeof(w));
     8         temp = now;
     9         a = temp % 10, temp /= 10;
    10         if (a == 0 || w[a]) continue;
    11         w[a] = 1;
    12 
    13         b = temp % 10, temp /= 10;
    14         if (b == 0 || w[b]) continue;
    15         w[b] = 1;
    16 
    17         c = temp % 10, temp /= 10;
    18         if (c == 0 || w[c]) continue;
    19         w[c] = 1;
    20 
    21         d = temp % 10, temp /= 10;
    22         if (d == 0 || w[d]) continue;
    23         w[d] = 1;
    24         
    25         e = temp % 10, temp /= 10;
    26         if (e == 0 || w[e]) continue;
    27         w[e] = 1;
    28 
    29         if ((a * 10 + b)*(c * 100 + d * 10 + e) == (a * 100 + d * 10 + b)*(c * 10 + e)) ++s;
    30     }
    31     printf("%d", s);
    32     return 0;
    33 }

    【最终结果】
    142

  • 相关阅读:
    Mac Office2016 安装及破解
    Axure 下载安装
    MacBook Pro常用快捷键
    MySQL 关于case when结合group by用时的写法举例
    RFID第二次作业
    Javascript函数柯里化(curry)
    binarySearch二分查找——Javascript实现
    KMP算法——Javascript实现
    从输入 URL 到页面加载完成的过程中都发生了什么事情?
    丁又专老师作业——Java检测代码
  • 原文地址:https://www.cnblogs.com/Simon-X/p/5302523.html
Copyright © 2020-2023  润新知