超级猜数字(难度crazy)

来源:互联网 发布:dns怎么解析域名 编辑:程序博客网 时间:2024/06/03 10:02

 

习题 99:超级猜数字★★★★★★(Special Code For C/C++)
题目描述:
经典猜数字:给出一个四位数,然后你去猜。
如那个数是1357,你猜1234的话,就给出1A1B,这是什么意思呢?
nA表示有n个数的位置猜对了,nB表示有n个数猜对了,但位置不对,
如果你再猜2351当然给出2A1B了,如果你猜2468,那就是0A0B了。
现在,由你去猜,要求7次内要猜出来。

接口:
int ITry(const char* pstr);
//参数为一个长度为4的由数字组成的字符串,如"1489"
//返回值:结果为0x12表示1A2B,0x40表示4A0B,注意为16进制

int ISubmit(const char* pstr)
//参数与上面的函数一样,意义也一样
//返回值:返回非0表示还有下一组数据,请继续循环,否则请结束程序

输入:
无输入,请按照接口编写代码

输出:
无输出,请按照接口编写代码

样例输入:
NULL

样例输出:
NULL

其它信息:
接口函数不需要声明便可使用,若要自行测试,
请自己补充完整接口函数,提交时记得不要连同接口函数也提交
ITry函数调用6次后,必须调用ISubmit,否则结果是PE(猜对但超过次数限制)
4个数字里没有重复的数字,并且数字范围为0-9,且最高位可能为0

难度:Crazy
方法:智能的方法不会,我是用爆力建树,效果还好,都算AC了测试...
这时是测试的网址:
http://yzfy.org/dis/listpost.php?tid=703&extra=page%3D1
Name: "L18" Problem ID "99"
Submit Time: 2010/1/11-15:49

G++: Compile OK

Test  1:    Accepted    Time = 1575 ms
Test  2:   
Accepted    Time = 1576 ms
Test  3:   
Accepted    Time = 1596 ms
Test  4:   
Accepted    Time = 1591 ms
Test  5:   
Accepted    Time = 1592 ms
Test  6:   
Accepted    Time = 1592 ms
Test  7:   
Accepted    Time = 1580 ms
Test  8:   
Accepted    Time = 1581 ms
Test  9:   
Accepted    Time = 1581 ms
Test 10:   
Accepted    Time = 1582 ms
Test 11:   
Accepted    Time = 1580 ms
Test 12:   
Accepted    Time = 1580 ms
--------------------------------
Problem ID     99
Test Result   
Accepted
Total Time     19006 ms
Total Memory   3244 Kb / 32000 Kb
Code Length    4179 Bytes
原创粉丝点击