HDU1172猜数字 [模拟]
1.题意
任务是猜一个四位数,每次尝试后会给出这次猜中了几个数字和猜中了几个位置,求能否根据尝试的记录给出答案
2.分析
数据给出查询次数和每次查询的数及其有几个数和几个位置符合,值得注意的是,猜对的数的个数计算不能重复,比如样例里要猜1122,尝试1234,这里只有两个数猜中了,1122中的前两个1只能算一次
注意题目限定是四位数所以直接枚举1000-9999就可以了
3.代码
1 # include <iostream> 2 # include <cstdio> 3 using namespace std; 4 const int maxn=105; 5 int N,ans; 6 struct Node 7 { 8 int test_num,a,b; 9 Node(){} 10 Node(int tt,int aa,int bb) 11 { 12 test_num=tt; 13 a=aa; 14 b=bb; 15 } 16 }Test[maxn]; 17 void Init() 18 { 19 for(int i=0;i<N;i++) 20 scanf("%d%d%d",&Test[i].test_num,&Test[i].a,&Test[i].b); 21 ans=-1; 22 } 23 bool judge(int num) 24 { 25 int np[4],nptest[4]; 26 np[0]=num%10; 27 np[1]=(num%100)/10; 28 np[2]=(num%1000)/100; 29 np[3]=num/1000; 30 for(int i=0;i<N;i++) 31 { 32 nptest[0]=Test[i].test_num%10; 33 nptest[1]=(Test[i].test_num%100)/10; 34 nptest[2]=(Test[i].test_num%1000)/100; 35 nptest[3]=Test[i].test_num/1000; 36 int tempa,tempb; 37 tempa=tempb=0; 38 int vis[4]; 39 for(int j=0;j<4;j++) vis[j]=0; 40 for(int j=0;j<4;j++) 41 { 42 if(np[j]==nptest[j]) tempb++; 43 for(int k=0;k<4;k++) 44 { 45 if(np[j]==nptest[k]&&vis[k]==0) 46 { 47 vis[k]=1; 48 tempa++; 49 break; 50 } 51 } 52 } 53 if(tempa==Test[i].a&&tempb==Test[i].b) 54 continue; 55 else return false; 56 } 57 return true; 58 } 59 int getcnt() 60 { 61 int cnt=0; 62 for(int i=1000;i<10000;i++) 63 if(judge(i)) 64 { 65 ans=i; 66 cnt++; 67 } 68 return cnt; 69 } 70 void Solve() 71 { 72 int temp=getcnt(); 73 if(temp==1) printf("%d\n",ans); 74 else printf("Not sure\n"); 75 } 76 int main() 77 { 78 while(scanf("%d",&N)!=EOF) 79 { 80 if(N==0) break; 81 Init(); 82 Solve(); 83 } 84 return 0; 85 }
转载于:https://www.cnblogs.com/cnXuYang/p/8653239.html
HDU1172猜数字 [模拟]相关推荐
- HDU1172 猜数字【暴力+进制】
猜数字 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- hdu1172 猜数字(java)
每日一看 题意: /** * @param args * 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的: * 计算机随机产生一个四位数,然后玩家猜这个四位数是什么. * 每猜一个数, ...
- hdu1172猜数字
猜数字 Problem Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜对 ...
- HDU-1172 猜数字
猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上. 比如计 ...
- hdu---1172猜数字
题意: 系统生成一个四位数,你猜n次,每次告诉你对的数字有几个,和对的位置有几个.n次之后问你能否确定这个数 题目链接 tips: 1.枚举法,正难则反,由条件去确定太繁琐时,可以枚举去验证每个条件 ...
- HDU-1172 猜数字 广搜
http://acm.hdu.edu.cn/showproblem.php?pid=1172 这题要换个思维,不要想着如何通过已有的条件来得到正确的值,而是枚举0000-9999这10000个数,看满 ...
- 模拟登录,给三次机会,并提示还有几次。如果登录成功,就可以玩猜数字小游戏了。
1.猜字谜小游戏 *随机生成一个数 *从键盘录入一个数与随机数进行比较,判断是大了还是小了 * */ package test1;import java.util.Scanner;public cla ...
- 猜数字游戏 模拟用户登录场景 模拟屏幕输出 C语言代码实现详细
范围在 0-100 的猜数字游戏 c语言代码实现 //1-100猜数字游戏 #include<stdio.h> #include<stdlib.h> //随机数函数头文件 #i ...
- 用C语言实现“模拟用户登录情景”、“猜数字小游戏”
for循环,这种情况,break跳出循环,直接打印0123:记录一下 2.实现左右增加字符,如下图所示,要想到用数组,左右增加变量,再加入延迟,sleep的头文件是#<windows.h> ...
最新文章
- JS中怎样获取当前年以及前后几年并构造成对象数组
- MySQL基础 (DML)
- python terminator_Python turtle.Terminator方法代碼示例
- iOS核心动画之CoreAnimation
- “阿一web标准学堂”第1课:web标准概述(附视频、课件、代码下载)
- C语言格式化读写文件
- python爬虫什么意思-Python 爬虫是什么
- 《21天学通C语言(第7版)》一6.4 小 结
- win10远程连接win7电脑 -- 局域网实现
- 最全地理数据下载网址
- MobileNetV3 论文
- 父元素上是mousedown.prevent,子元素会被携带方法,还阻止不了怎么办?
- 实例:泰坦尼克号幸存者的预测
- 【数据科学家学习小组】之统计学(第二期)第一周(20191028-20191103)-momi
- 视频工厂分享vlog拍摄技巧
- 让人眼花缭乱的视错觉,太酷炫了!
- Excel实现给加单引号,以及加逗号
- MAC chrome浏览器地址栏无法搜索问题解决办法
- 不是码农,不会敲代码的她,却最懂程序员!| 人物志
- 新华三培训3---交换基础,VLAN之间路由
热门文章
- 德勤加入阿里云原生合作伙伴计划,强强联手开创数字化咨询新风向
- 技术干货 | 阿里云数据库PostgreSQL 13大版本揭秘
- 大促密集,CDN如何保障电商体验如丝般顺滑?
- 浙江大学计算机基础上机实验答案,2015年浙江大学远程教育计算机基础知识题及参考答案(2)...
- java gui 层次结构_javaGUI教学图形界面的层次结构.ppt
- pmp每日三题(2022年2月21日)
- 在狮驼岭,孙悟空救了猪八戒,猪八戒为何不帮孙悟空?
- 美团在Redis上踩过的一些坑-4.redis内存使用优化
- UNDO Retntion
- R 语言学习过程全记录 ~