HM032 猜秘密数
HM032 猜秘密数
来源: 第 32 集 程序流程结构-循环结构案例-猜数字
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
系统先确定一个 \(1\) 到 \(100\) 之间的秘密数,玩家反复猜测。猜错了要提示偏大还是偏小,然后继续猜;猜对了提示胜利并立刻结束。实现上用 while (1) 包住“读入一次猜测并判断”,猜对时用 break 跳出这层循环。不要把秘密数打印出来。
秘密数的生成规则与 rand() % 100 + 1 相同:rand() % 100 得到 \([0,99]\),再加 \(1\) 才是 \([1,100]\)。本题由评测提供这个余数,避免未固定种子时每次结果不同(课堂上用 srand((unsigned int)time(NULL)) 并包含 <ctime> 才能按系统时间换种子;OJ 上不要自己 rand)。
判断顺序:
- 猜测 \(> \) 秘密数:输出
猜测过大 - 否则若猜测 \(< \) 秘密数:输出
猜测过小 - 否则:输出
恭喜您猜对了,然后break
题目保证猜测序列里一定能猜中,猜中后忽略后面可能多出来的数字。
输入格式
第一行一个整数 \(raw\)(\(0 \le raw \le 99\)),表示 rand() % 100 的结果,秘密数为 \(raw + 1\)。
第二行若干个整数,为玩家依次给出的猜测,每个都在 \(1\) 到 \(100\) 之间。
输出格式
对每次尚未猜中时的猜测输出一行提示,猜中的那次输出 恭喜您猜对了 后停止。每行末尾换行。不要输出秘密数。
样例
输入 #1
41
80 10 70 50 40 45 42
输出 #1
猜测过大
猜测过小
猜测过大
猜测过大
猜测过小
猜测过大
恭喜您猜对了
输入 #2
0
1
输出 #2
恭喜您猜对了
说明
样例 1:\(41+1=42\)。先大后小,区间不断收窄,最后猜中 \(42\)。样例 2:余数为 \(0\) 时秘密数是 \(1\),第一次就猜中。
可以把猜测次数限制成 \(5\) 次作为扩展,本题不要求。
信息
- ID
- 1031
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者