【C语言编程练习】5.7填数字游戏求解
之前的东西就不上传了,大致就跟现在的一样
1. 题目要求
计算
ABCD
* E
DCBA
这个算式中每个字母代表什么数字?
2. 题目分析
如果是我们人去做这道题会怎么办,一定是这样想把,一个四位数乘以一个一位数结果等于一个四位数,并且这两个四位数每位数字不同,且顺序相反。
那就用计算机穷举吧~
穷举的精髓就是找到其解空间,然后找出符合条件的数!
3. 代码尝试
【难点】如何实现解空间?如何判断ABCDE不相等?
- 四位数空间:(1000,10000)
- 将值取出,并一一比较
【最终版本代码】
#include <stdio.h>
int reverse(int i){
int m,j=0;
m = i;
while(m){
j=j*10+m%10;
m = m/10;
}
return j;
}
int func(int i,int j){
//如何判断5个数字不相同?将每一位分解出来,逐一比较
int buf[4],k=0;
while(i){
buf[k]=i%10;
i=i/10;
k++;
}
if(buf[0]==buf[1])return 0;
if(buf[0]==buf[2])return 0;
if(buf[0]==buf[3])return 0;
if(buf[0]==j)return 0;
if(buf[1]==buf[2])return 0;
if(buf[1]==buf[3])return 0;
if(buf[1]==j)return 0;
if(buf[2]==buf[3])return 0;
if(buf[2]==j)return 0;
return 1;
}
int main()
{
int i,j;
for(i=1000;i<10000;i++){
for(j=1;j<10;j++){
if(i*j==reverse(i)&&func(i,j)){
printf("%d\n",i);
printf("* %d\n",j);
printf("--------\n");
printf("%d",reverse(i));
}
}
}
return 0;
}
4. 思考
如何让两两比较更高效?
【C语言编程练习】5.7填数字游戏求解的更多相关文章
- TOJ 1220 填数字游戏 / 深搜
填数字游戏 时间限制(普通/Java):1000MS/10000MS 运行内存限制:65536KByte 描述 有个小游戏,让你填写以下方框,要求: a1+a2+a3+M=b1+b2+b3+M ...
- C/C++编程笔记:流行的数字游戏【2048】,C语言400行源代码分享
游戏介绍 你玩过2048吗?2048是一款流行于各大网页和手机的数字游戏,手机安卓版推出的是<挑战2048>,之后的版本中还加入了双人对战的游戏模式,更加受到玩家的热捧. 2048的游戏规 ...
- C语言编程学习开发的俄罗斯方块小游戏
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 ...
- 个人c语言编程风格总结
总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...
- Linux下C语言编程实现spwd函数
Linux下C语言编程实现spwd函数 介绍 spwd函数 功能:显示当前目录路径 实现:通过编译执行该代码,可在终端中输出当前路径 代码实现 代码链接 代码托管链接:spwd.c 所需结构体.函数. ...
- ACM/ICPC 之 DP进阶(51Nod-1371(填数字))
原题链接:填数字 顺便推荐一下,偶然看到这个OJ,发现社区运营做得很赞,而且交互和编译环境都很赞(可以编译包括Python,Ruby,Js在内的脚本语言,也可以编译新标准的C/C++11,甚至包括Go ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- c语言编程实例——小球跳动
1.预备知识 1.1 相关头文件 "#include"是c语言中用以申明所需调用的库函数或自定义函数的头文件路径及文件名.#include ""和#includ ...
随机推荐
- element ui change 传递带自定义参数
@change="((val)=>{changeStatus(val, index)})" https://www.cnblogs.com/mmzuo-798/p/10438 ...
- CentOS7自定义系统服务示例
CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/ ...
- (五)聊一聊深Copy与浅Copy
一.关于浅copy与深copy 首先说明一下: 在python中,赋值其实就是对象的引用,变量就是对象的一个标签,如果把内存对象比喻成一个个房间,那么变量就是门牌号. 深copy与浅copy只是针对可 ...
- 转载-IDEA项目左边栏只能看到文件看不到项目结构
原文-https://blog.csdn.net/weixin_42362985/article/details/80538064 有时IDEA Maven项目打开左侧Project窗口本应该显示项目 ...
- HG奋斗赛B[20190429]
T1 >传送门< 记忆化搜索,听说有更简单的方法(但博主比较菜) #include <cstdio> #include <cstdlib> #define ll l ...
- Urban Elevations UVA - 221
题目大意:给出建筑的俯视图,以及每个建筑的左下角坐标,宽度,长度,高度.求正视图可观察到的建筑的编号 思路:建筑物的可见性等于南墙的可见性,依据左下角排序后,逐个判断每个建筑是否可见.对南墙的x坐标进 ...
- Spring 基于注解的AOP实现
在本文开始之前,我要引入一张图,这张图的来源 https://blog.csdn.net/chenyao1994/article/details/79708496 ,版权归原作者所有,我借鉴了原作者的 ...
- 本地项目文件夹上传至个人Github
安装Git 之后到Git官网,点击Download下载,打开安装包一路按Next一切默认直至安装结束. 找到任意一个文件夹,点击鼠标右键后若出现下图的 Git Gui Here 和 Git Bash ...
- 【intern】最长公共子串、编辑距离、KMP 等
这可能是一个很长的blog…… # from https://blog.csdn.net/justheretobe/article/details/51764587 #!/usr/bin/env py ...
- C# this关键字的四种用法
Go to below URL to find more details and example. http://blog.csdn.net/longlong821/article/details/7 ...
