三羊献瑞|2015年蓝桥杯B组题解析第三题-fishers
三羊献瑞
观察下面的加法算式:
祥 瑞 生 辉
- 三 羊 献 瑞
三 羊 生 瑞 气
(如果有对齐问题,可以参看【图1.jpg】)

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
答案:1085
思路一:暴力法,8层循环,从0~9中选8个数参与加法运算,筛选条件:满足abcd+efgb = efcbx
思路二:dfs求全排列,筛选条件满足:abcd+efgb = efcbx
代码一暴力枚举:
#include<iostream>
using namespace std;
/*枚举法,暴力解法*/
int main(){
// abcd + efgb
for(int a = 1;a<=9;a++){
for(int b = 0;b<=9;b++){
if(b == a){
continue;
}
for(int c = 0;c<=9;c++){
if(c==b || c==a){
continue;
}
for(int d = 0;d<=9;d++){
if(d==c || d==b || d==a){
continue;
}
for(int e = 1;e<=9;e++){
if(e==d || e==c ||e ==b || e==a){
continue;
}
for(int f=0;f<=9;f++){
if(f == e|| f==d ||f == c || f==b || f==a){
continue;
}
for(int g=0;g<=9;g++){
if(g==f ||g == e|| g== d|| g==c ||g == b|| g==a){
continue;
}
int x = a*1000+b*100+c*10+d;
int y = e*1000+f*100+g*10+b;
int z = e*10000+f*1000+c*100+b*10;
//筛选条件
for(int i=0;i<=9;i++){
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g){
continue;
}
if(x+y == z+i){
cout<<y<<endl;
}
}
}
}
}
}
}
}
}
return 0;
}
代码二dfs全排列:
#include<iostream>
using namespace std;
bool visited[10];
int arr[10];
//参数k表示第k个位置 共8个位置 abcd + efgh
void dfs(int k){
if(k==9){
//判断条件
int x = 1000*arr[1] + 100*arr[2] + 10*arr[3] + arr[4];
int y = 1000*arr[5] + 100*arr[6] + 10*arr[7] + arr[2];
int z = 10000*arr[5] + 1000*arr[6] + 100*arr[3] + 10*arr[2];
for(int i = 0;i<=9;i++){
if(!visited[i]){
z = z + i;
if(z == x+y){
cout<<y<<endl;
}
z = z - i;
}
}
return;
}
if(k==1 || k==5){
for(int i=1;i<=9;i++){
if(!visited[i]){
visited[i] = true;
arr[k] = i;
dfs(k+1);
visited[i] = false;
}
}
}else{
for(int i=0;i<=9;i++){
if(!visited[i]){
visited[i] = true;
arr[k] = i;
dfs(k+1);
visited[i] = false;
}
}
}
}
int main(){
dfs(1);
}
三羊献瑞|2015年蓝桥杯B组题解析第三题-fishers的更多相关文章
- 2015年蓝桥杯B组C/C++决赛题解
2015年第六届蓝桥杯B组C/C++决赛题解 点击查看2015年第六届蓝桥杯B组C/C++国赛题目(不含答案) 1.积分之迷 三重循环 枚举A,B,C的值,如果满足两个条件:3个A + 7个B ...
- 2015年蓝桥杯B组C/C++决赛题目
2015年第六届蓝桥杯B组C/C++国赛题目 点击查看2015年第六届蓝桥杯B组C/C++国赛题解 1.积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会 ...
- 第六届蓝桥杯JavaB组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分机号 X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如: 751,520, ...
- 第六届蓝桥杯JavaA组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.胡同门牌号 小明家住在一条胡同里.胡同里的门牌号都是连续的正整数,由于历史原因,最小的号码并不是从1开始排的. 有一天小明突然发现了有 ...
- 星系炸弹|2015年蓝桥杯B组题解析第二题-fishers
星系炸弹 在X星系的广袤空间中漂浮着许多X星人造"炸弹",用来作为宇宙中的路标. 每个炸弹都可以设定多少天之后爆炸. 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2 ...
- 牌型种数|2015年蓝桥杯B组题解析第七题-fishers
牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得 ...
- 加法变乘法|2015年蓝桥杯B组题解析第六题-fishers
加法变乘法 我们都知道:1+2+3+ ... + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如: 1+2+3+...+1011+12+...+2728+29+ ...
- 垒骰子|2015年蓝桥杯B组题解析第九题-fishers
垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的 ...
- 移动距离|2015年蓝桥杯B组题解析第八题-fishers
移动距离 X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号. 比如:当小区排号宽度为6时,开始情形如下: 1 2 3 4 ...
随机推荐
- HTML5 桌面提示
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- wxWidgets与其他工具库的比较(下)
2009-07-25 12:37:51 GTK+ ● GTK+的网站:www.gtk.org: ● GTK+原本是Gimp的一个工具库,是在LGPL协议下发布的Unix系统GU ...
- Python开发【笔记】:python程序添加到systemctl系统服务
systemctl系统服务 环境:centos7 systemctl服务使用详解 实现 正常情况下我们在/usr/lib/systemd/system/目录下,创建一个以.service 后缀的文件, ...
- 启动yarn
$cd /app/hadoop/hadoop-2.2.0/sbin $./start-yarn.sh
- .NET数据挖掘与机器学习开源框架
1. 数据挖掘与机器学习开源框架 1.1 框架概述 1.1.1 AForge.NET AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经 ...
- Celery配置Redis数据库保存Return结果状态
使用windows版本 1.于GitHUB下载https://github.com/ServiceStack/redis-windows Window版本,到路径: 2. 运行路径下:D:\redis ...
- iphone传照片还是用QQ比较好
之前设置相机格式为高效,通过用91助手的苹果助手导出来文件格式为HEIC,window下没法打开.网上介绍用微信传,发现传的是缩略图,不清楚.最后选择通过qq传比较高清.注意,如果从相册中进行选择的话 ...
- Tomcat重启session失效
在Tomcat的目录下找到context.xml,取消掉<Manager pathname="" /> 这句的注释.
- 【剑指Offer学习】【面试题3 :二维数组中的查找】
package 二维数组查找; public class Test03 { /** * 在一个二维数组中,每一行都按 package 二维数组查找; public class Test03 { /** ...
- js数组之可变函数
在js的数组中有两个方法为数组添加元素:1.push();2.unshift(),push函数是将元素添加到数组的末尾,现在不用说大家估计也能猜出来,unshift这个函数就是把元素添加到数组的开头的 ...