当前位置: 首页 > article >正文

蓝桥云客 三羊献瑞

三羊献瑞

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

观察下面的加法算式:

      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你输出“三羊献瑞”所代表的 4 位数字(答案唯一)。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

思路:

我们可以列出方程,枚举出八个数字的可能。注意,进位尤其重要!!!

代码如下:
 

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
int arr[10];
int a,b,c,d,e,f,g,h;//对应下标1 2 3 4 5 6 7 8 
bool vis[10];
bool found;
void dfs(int x)
{
    if(found)
    return;
    
    if(arr[1] == 0 || arr[5] == 0)//开头a,e不能为0 
    return;
    
    if(x > 8)
    {
        int k1,k2,k3,k4;
        k1 = k2 = k3 = k4 = 0;
        a = arr[1];
        b = arr[2];
        c = arr[3];
        d = arr[4];
        e = arr[5];
        f = arr[6];    
        g = arr[7];
        h = arr[8];

        k1 = (d+b)/10;
        k2 = (c+g+k1)/10;
        k3 = (b+f+k2)/10;
        k4 = (a+e+k3)/10;
        
        if(h == (d+b)%10 && b == (c+g+k1)%10 && c == (b+f+k2)%10 && f == (a+e+k3)%10 && e == k4)
        {
            found = true;
            cout <<  e  <<  f << g  <<  b ;
        }
        return;
    }
    for(int i = 0 ; i <= 9 ; i++)
    {
        if(vis[i] == false)
        {
            vis[i] = true;
            arr[x] = i;
            dfs(x+1);
            vis[i] = false;
            arr[x] = -1;    
        }
    }
}
int main() 
{
    memset(arr,-1,sizeof(arr)); 
    dfs(1);
    return 0;
}


http://www.kler.cn/a/526168.html

相关文章:

  • JavaScript - Web APIs(下)
  • 第十四讲 JDBC数据库
  • C语言自定义数据类型详解(二)——结构体类型(下)
  • PWM频率测量方法
  • 跨域问题及解决方案
  • A星算法两元障碍物矩阵转化为rrt算法四元障碍物矩阵
  • 4.装饰模式(Decorator)
  • Day07:缓存-数据淘汰策略
  • Springboot如何使用面向切面编程AOP?
  • 【Linux系统】进程间通信:实现命名管道通信
  • Linux:基础IO(一.C语言文件接口与系统调用、默认打开的文件流、详解文件描述符与dup2系统调用)
  • vector有用的自己不太熟悉的函数
  • 设计转换Apache Hive的HQL语句为Snowflake SQL语句的Python程序方法
  • 【Qt】各种常用的按钮(button)
  • 深入理解Linux内核的虚拟地址到物理地址转换机制及缓存优化
  • 6.工厂模式(Factory Method)
  • JVM_程序计数器的作用、特点、线程私有、本地方法的概述
  • java求职学习day22
  • WireShark4.4.2浏览器网络调试指南:数据统计(八)
  • LeetCode题练习与总结:区间加法 Ⅱ -- 598
  • 科研绘图系列:R语言绘制散点图(scatter plot)
  • Java 大视界 -- Java 大数据在量子通信安全中的应用探索(69)
  • E. Correct Placement
  • 单词翻转(信息学奥赛一本通1144)
  • SpringBoot 原理分析
  • 智慧园区管理系统为企业提供高效运作与风险控制的智能化解决方案