甲乙两人玩猜数字游戏(猜一赔七小意思)1~49之间的一个数字·<猜中者重谢!>

练习二:1008&猜数字
1008 &猜数字
Problem Description
A有1数m,B来猜.B每猜一次,A就说&太大&,&太小&或&对了&
问B猜n次可以猜到的最大数。
第1行是整数T,表示有T组数据,下面有T行
每行一个整数n (1 ≤ n ≤ 30)
猜n次可以猜到的最大数
Sample Input
Sample Output
1、题目编号:1008 &猜数字
2、简单题意:
&&A有1数m,B来猜。B每猜一次,A就说太大,太小或对了。
问B猜n次可以猜到的最大数。&
3、解题思路形成过程:
这道题目乍一看,完全没有思路,不知道B到底怎么个猜法,不知从何下手。于是我便上网查询,看了一些代码的思路。原来这道题的意思是:要猜到的最大的数字m,即在1到m间的每一个数,你都能在n次内把它猜出来。所以说在最坏的情况下,在1到m间,你最多只要猜log2(m+1)(取整)次,所以易知m=2^n
- 1,即猜n次,你能猜到的最大的数为2^n - 1。对于2^n
- 1,就是每次取区间中间的元素,将区间分成两段,然后循环这个过程。
& 这道题目乍一看完全不知道如何下手,分析过后才发现,这是二分查找的一种应用。
5、AC代码:
int main()
& & int T,n,
& & cin&&T;
&//T个数据
& & for(int i=0;i
& result=pow(2,n)-1;
& cout&&result&&
& & return 0;
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。一个教授逻辑学的教授,有三个非常聪明的学生,怎么猜数字的? - 知乎4826被浏览471171分享邀请回答2.8K285 条评论分享收藏感谢收起18225 条评论分享收藏感谢收起查看更多回答12 个回答被折叠()go语言猜数字小游戏
- Go语言中文网 - Golang中文社区
<meta name="author" content="polaris ">
go语言猜数字小游戏
· 477 次点击 ·
开始浏览 & &
已经快12点了,先写了发出来,要不就算明天的了今天写的有点晚,现在代码正在调试中,一会发出来
最近看了好多基础的go语言教程,然后教程里都有的也不好意思再在这写一遍了,写一个猜数字小游戏练手,也算用到了很多基础知识了
代码如下:
package main
&#34;bufio&#34;
&#34;fmt&#34;
&#34;math/rand&#34;
&#34;os&#34;
func main() {
fmt.Println(&#34;欢迎来到猜数字小游戏&#34;)
targetArr := randNum(4)
var srcArr [4]int
crectNum := 0
reader := bufio.NewReader(os.Stdin)
fmt.Println(&#34;请输入四个数字连续输入不加空格&#34;)
input, _ := reader.ReadString(&#39;\n&#39;)
for i := 0; i & 4; i++ {
srcArr[i] = int(input[i] - &#39;0&#39;)
crectNum = bothRight(srcArr, targetArr)
fmt.Printf(&#34;数字正确位置不正确的有%d,数字位置全对的有%d&#34;, numIsRight(srcArr, targetArr), crectNum)
fmt.Println(&#34;&#34;)
if crectNum == 4 {
fmt.Println(&#34;恭喜你答对了&#34;)
fmt.Println(targetArr)
func randNum(lenth int) (arr []int) {
tempArr := make([]int, lenth)
for i := 0; i & i++ {
tempNum := rand.Intn(10)
for j := 0; j &= j++ {
if tempArr[j] == tempNum {
tempArr[i] = tempNum
return tempArr
func numIsRight(srcArr [4]int, targetArr []int) (num int) {
for i := 0; i & len(srcArr); i++ {
for j := 0; j & len(targetArr); j++ {
if srcArr[i] == targetArr[j] && i != j {
func bothRight(srcArr [4]int, targetArr []int) (num int) {
for i := 0; i & len(srcArr); i++ {
if srcArr[i] == targetArr[i] {
还有bug,在我电脑上持行随机数老是固定的,今天太晚了,明天好好看下,代码写的又太啰嗦了,对不起,时间太晚了,明天可以重构一下
运行效果如下:
欢迎来到猜数字小游戏
请输入四个数字连续输入不加空格
数字正确位置不正确的有0,数字位置全对的有1
数字正确位置不正确的有0,数字位置全对的有4
恭喜你答对了
成功: 进程退出代码 0.
只会随机1798,一下就答对了,重新编译还是1798郁闷
r := rand.New(rand.NewSource(time.Now().UnixNano()))
用上面这个可以给随机函数一个时间种子,保证每次随机到的不一样
用r.Intn(10)来获取随机数
477 次点击 &
请尽量让自己的回复能够对别人有帮助
支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
支持 @ 本站用户;支持表情(输入 : 提示),见
图片支持拖拽、截图粘贴等方式上传
记住登录状态
已经快12点了,先写了发出来,要不就算明天的了今天写的有点晚,现在代码正在调试中,一会发出来
最近看了好多基础的go语言教程,然后教程里都有的也不好意思再在这写一遍了,写一个猜数字小游戏练手,也算用到了很多基础知识了
代码如下:
package main
&#34;bufio&#34;
&#34;fmt&#34;
&#34;math/rand&#34;
&#34;os&#34;
func main() {
fmt.Println(&#34;欢迎来到猜数字小游戏&#34;)
targetArr := randNum(4)
var srcArr [4]int
crectNum := 0
reader := bufio.NewReader(os.Stdin)
fmt.Println(&#34;请输入四个数字连续输入不加空格&#34;)
input, _ := reader.ReadString(&#39;\n&#39;)
for i := 0; i & 4; i++ {
srcArr[i] = int(input[i] - &#39;0&#39;)
crectNum = bothRight(srcArr, targetArr)
fmt.Printf(&#34;数字正确位置不正确的有%d,数字位置全对的有%d&#34;, numIsRight(srcArr, targetArr), crectNum)
fmt.Println(&#34;&#34;)
if crectNum == 4 {
fmt.Println(&#34;恭喜你答对了&#34;)
fmt.Println(targetArr)
func randNum(lenth int) (arr []int) {
tempArr := make([]int, lenth)
for i := 0; i & i++ {
tempNum := rand.Intn(10)
for j := 0; j &= j++ {
if tempArr[j] == tempNum {
tempArr[i] = tempNum
return tempArr
func numIsRight(srcArr [4]int, targetArr []int) (num int) {
for i := 0; i & len(srcArr); i++ {
for j := 0; j & len(targetArr); j++ {
if srcArr[i] == targetArr[j] && i != j {
func bothRight(srcArr [4]int, targetArr []int) (num int) {
for i := 0; i & len(srcArr); i++ {
if srcArr[i] == targetArr[i] {
还有bug,在我电脑上持行随机数老是固定的,今天太晚了,明天好好看下,代码写的又太啰嗦了,对不起,时间太晚了,明天可以重构一下
运行效果如下:
欢迎来到猜数字小游戏
请输入四个数字连续输入不加空格
数字正确位置不正确的有0,数字位置全对的有1
数字正确位置不正确的有0,数字位置全对的有4
恭喜你答对了
成功: 进程退出代码 0.
只会随机1798,一下就答对了,重新编译还是1798郁闷
r := rand.New(rand.NewSource(time.Now().UnixNano()))
用上面这个可以给随机函数一个时间种子,保证每次随机到的不一样
用r.Intn(10)来获取随机数
&最高记录 1364
&2012- Go语言中文网,中国 Golang 社区,致力于构建完善的 Golang 中文社区,Go语言爱好者的学习家园。
Powered by
&o&服务器由
赞助 &·&CDN 由
VERSION: V3.0.0&·&5.558108ms&·&为了更好的体验,本站推荐使用 Chrome 或 Firefox 浏览器
登录和大家一起探讨吧
记住登录状态
还不是会员还在猜数字小姐是谁?数字先生身份已经曝光了
来源:互联网
作者:佚名
编辑:蕾蕾
158258关注
张澎在配音界是妥妥的男主,这些年他配过不少经典的角色,既是配音演员也是导演。
《鹿鼎记》里为黄晓明配音, 《武林外史》的沈浪,等等。
一人配多个角色也是常有的事
《红顶商人胡雪岩》里既是演员也是副导演
看了还想看
本站图片仅为设计美化,与文章无关。如认为影响您的权益,请与我们联系。
下拉更多精彩

我要回帖

更多关于 猜数字游戏规则 的文章

 

随机推荐