填数字游戏ABCD*E=DCBA
目录
- 1.问题描述
- 2.问题分析
- 3.代码
- 4.总结
1.问题描述
有这样一个算式:
ABCD×EDCBA\frac {ABCD \atop ×E} {DCBA} DCBA×EABCD
其中ABCDE代表的数字各不相同。编写一个程序,计算出A、B、C、D、E各代表什么数字。
2.问题分析
这道题的实质就是要求这样一个4位数字ABCD和1位数E,要求它们的乘积等于DCBA。同时A、B、C、D、E互不相等。
最直观简单的方法就是采用穷举法。也就是在4位的整数集合[1000, 9999]和1位整数集合[1, 9]中找到符合上述算式条件的4位数字ABCD和1位数E
约束条件:
1.ABCD*E=DCBA
2.A、B、C、D、E所代表的整数互不相等
ABCD<-1000
Repeat:E<-1Repeat:if ABCD*E=DCBA and A、B、C、D、E互不相等 Then 输出这个答案E<-E+1Until E>9ABCD<-ABCD+1
Until ABCD>9999
已知ABCD如何求解DCBA?
详见上一篇文章中:
判断回文数字->2.问题分析->如何求解一个数的“倒置数”
如何判断A、B、C、D、E互不相等
不重不漏地比较10对数
(A,B)
(A,C)
(A,D)
(A,E)
(B,C)
(B,D)
(B,E)
(C,D)
(C,E)
(D,E)
3.代码
#include "stdafx.h"
#include "stdlib.h"
#include <iostream>
using namespace std;
//求i的倒置数
int reverse(int i)
{int r = 0;while(i){r = r * 10 + i % 10;i = i / 10;}return r;
}//判断A、B、C、D、E是否互不相等
int fun(int abcd, int e)
{int arr[4],k = 0;while(abcd){arr[k] = abcd % 10;abcd = abcd / 10;k++;}if(arr[0] == arr[1]) return 0; //(A,B)if(arr[0] == arr[2]) return 0; //(A,C)if(arr[0] == arr[3]) return 0; //(A,D)if(arr[0] == e) return 0; //(A,E)if(arr[1] == arr[2]) return 0; //(B,C)if(arr[1] == arr[3]) return 0; //(B,D)if(arr[1] == e) return 0; //(B,E)if(arr[2] == arr[3]) return 0; //(C,D)if(arr[2] == e) return 0; //(C,E)if(arr[3] == e) return 0; //(D,E)return 1;
}
int main(int argc, char* argv[])
{int abcd,e;for(abcd = 1000; abcd < 10000; ++abcd){for(e = 1; e < 10; ++e){if(fun(abcd,e) && abcd * e == reverse(abcd)){cout << abcd << endl;cout << " *" << e << endl;cout << "----" << endl;cout << abcd * e<< endl;}}}system("pause");return 0;
}
/*输出:
2178*4
----
8712
*/
4.总结
本题的关键在于
1、计算“倒置数”
2、判断A、B、C、D、E互不相等
填数字游戏ABCD*E=DCBA相关推荐
- 数字游戏ABCD*E=DCBA-第11届蓝桥杯Scratch选拔赛真题精选
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第95讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...
- 【C语言编程练习】5.7填数字游戏求解
之前的东西就不上传了,大致就跟现在的一样 1. 题目要求 计算 ABCD * E DCBA 这个算式中每个字母代表什么数字? 2. 题目分析 如果是我们人去做这道题会怎么办,一定是这样想把,一个四位 ...
- c语言填数字游戏求解过程解读,c语言编程--数字游戏.doc
c语言编程--数字游戏 计算机实习报告 面向过程编程 用C语言求解实际问题 一.问题描述 游戏类第15个任务--猜数字游戏 计算机从0-9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数 ...
- 蓝桥杯 填数字游戏 20分。
小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格子,要小明和他交替 ...
- 求解填数字游戏问题(DFS回溯)
[问题描述] 在3*3方阵中填入1到10内某9个整数,每方格填一个,使所有相邻两个方格两个整数之和为质数,输出满足要求的情况总数 [思路] 构建一个二维数组,常规回溯搜法来搜就可以了,值得注意的就是, ...
- matlab数字填图游戏,数字填色游戏下载-数字填色游戏安卓版下载(Paint By Number) v1.7.3-11773手游网...
数字填色游戏是一款非常简单的放松玩法,游戏屏幕上将会给玩家显示出不同的图形:玩家按照不同的数字进行上色就可以.在玩游戏的同时可以培养玩家的色彩搭配意识,这里收集了多种多样的外形图案等你来完成. 数字填 ...
- python猜数字游戏简单-python猜数字游戏快速求解解决方案
python猜数字游戏快速求解解决方案.使用方法: 1. 保存代码为guessall.py 2. 执行python guessall.py > result.txt 3. 打开result.tx ...
- 2017年第八届蓝桥杯C/C++ A组国赛 —— 第四题:填字母游戏
标题:填字母游戏 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格 ...
- 【NOIP2018】DAY2T2——填数游戏(轮廓线状压的dp?搜索打表)
描述 小 D 特别喜欢玩游戏.这一天,他在玩一款填数游戏. 这个填数游戏的棋盘是一个n × m的矩形表格.玩家需要在表格的每个格子中填入一个数字(数字 0 或者数字 1),填数时需要满足一些限制. 下 ...
最新文章
- Windows 10将为大型企业提供订阅型服务
- mongdb 群集_群集文档的文本摘要
- jQuery 往table添加新内容有以下四个方法:
- OpenShift 4 - 基于URL的应用路由
- python界面-Python GUI 编程(Tkinter)
- maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)
- 使用git作为首页以及克隆上传创建下载删除
- svn server 配置 与TortoiseSVN、Ankhsvn+VS使用 及 问题
- HD AUDIO再2003安装的问题
- 爱河许云上计算机乐谱,爱河简谱(歌词)-神马乐团演唱-桃李醉春风记谱
- [转] 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
- 爬取煎蛋网图片的一种思路
- 超声波传感器(CHx01) 学习笔记 Ⅲ-API介绍
- iOS 开发中的争议(二)--唐巧
- 动手| 一个人脸识别的K8s部署实践
- 双引擎强悍!QQ电脑管家4.6 Beta1实测
- OP向左,SaaS向右,如何选择?
- Delphi CreateMutex 防止程序多次运行
- 二维码扫描+长按识别二维码demo
- GA-BP遗传神经网络预测
热门文章
- 【Matlab WSN通信】A_Star改进LEACH多跳传输协议【含源码 487期】
- Arduino实验三十五 声音传感器
- 高考投档计算机检索,高考志愿投档
- 如何查看目前所有会话的状态oracle,Oracle一些常用查看数据库状态SQL
- 浅谈我的建站经验之导航设置
- 电子血压计方案提供模块芯片开发服务
- Mybatis中#和$的区别
- 批量删除时传参的转换
- Nginx缓冲区配置
- springboot自动创建Oracle,一键生成项目 SpringBoot项目代码生成器 支持Oracle 支持MySql...