• 15年蓝桥杯第3题


    题意:

    给出下式:
       祥 瑞 生 辉
    + 三 羊 献 瑞
    -----------------
    三 羊 生 瑞 气
    其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
    请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

    思路:dfs。依次深搜八个汉字代表的数字。注意不同的汉字代表的数字必须是不同得,保证数字合法的话判断两个数字的第一个数都不能是0。不检查也是正确答案。

    简单的dfs,我自己写应该也写不出来。

    附right代码:

     1 /*
     2 给出下式:
     3    祥 瑞 生 辉
     4 +  三 羊 献 瑞
     5 -----------------
     6 三 羊 生 瑞 气
     7 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
     8 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
     9 dfs。依次深搜八个汉字代表的数字。
    10  */
    11 
    12 #include <stdio.h>
    13 #include <string.h>
    14 #include <iostream>
    15 using namespace std;
    16 
    17 //祥瑞生辉三羊献气 分别代表 a[0] - a[7]
    18 
    19 int a[10];
    20 int ans;
    21 
    22 bool check() {
    23     for (int i=0; i<8; ++i) {
    24         for (int j=0; j<8; ++j) {
    25             if (a[i] == a[j] && i != j) return false;
    26         }
    27     }
    28     return true;
    29 }
    30 
    31 void dfs(int cnt) {
    32     if (cnt > 8) return;
    33     if (cnt == 8) {
    34         int num1 = a[0]*1000 + a[1]*100 + a[2]*10 + a[3];
    35         int num2 = a[4]*1000 + a[5]*100 + a[6]*10 + a[1];
    36         int num3 = a[4]*10000 + a[5]*1000 + a[2]*100 + a[1]*10 + a[7];
    37         //if (a[0] == 0 || a[4] == 0 || !check()) return;
    38         if (!check()) return;
    39         if (num3 == num1 + num2) {
    40             ans = num2;
    41             return;
    42         }
    43     }
    44     for (int i=0; i<=9; ++i) {
    45         a[cnt] = i;
    46         dfs(cnt+1);
    47     }
    48     return;
    49 }
    50 
    51 int main() {
    52     dfs(0);
    53     cout << ans << endl;
    54     return 0;
    55 }
    View Code
  • 相关阅读:
    编译Excel遇到的DialogBoxW宏的实参不足问题
    C# 简单连接数据库并执行SQL查询语句
    AutoCAD VBA 遍历所有对象
    VBA: 错误消息:"类未注册"插入用户窗体
    解决Qt程序发布时中文乱码问题
    Qt操作excel
    HWND_BROADCAST的一个用法——修改环境变量,立即通知系统
    VC环境使用XML解析器(TinyXML)编程
    C++ XML解析之TinyXML篇(转载)
    C/C++枚举目录中的文件或文件夹
  • 原文地址:https://www.cnblogs.com/icode-girl/p/5228938.html
Copyright © 2020-2023  润新知