实现一个猜数游戏,用户手动输入一个数字,电脑来猜-创新互联
实现一个猜数游戏,首先输入或者定义一个0-100的整数,然后让计算机生成一个0-100的随机数,并显示计算机猜测的结果是太大了,还是太小了,没猜对的话就继续猜,直到猜对,并显示出猜测次数。
创新互联主营申扎网站建设的网络公司,主营网站建设方案,成都app开发,申扎h5成都微信小程序搭建,申扎网站营销推广欢迎申扎等地区企业咨询按题目要求用go编写的结果package main
import (
"fmt"
"math/rand"
"time"
)
func init() {//初始化随机种子
rand.Seed(time.Now().UnixNano())
}
func main() {var inputNum = 0 //输入让电脑猜测的整数
var num = 0 //猜测次数
fmt.Println("请输入一个数!")
//输入0-100整数
_, _ = fmt.Scanln(&inputNum)
fmt.Println("您输入的数字为:", inputNum)
//初始化生成随机数字
i := rand.Intn(101)
for i != inputNum {if i fmt.Println("电脑猜的太小了,猜的是:",i)
}else{ fmt.Println("电脑猜的太大了,猜的是:",i)
}
i = rand.Intn(101) //重新猜测
num ++ //累计猜测次数
}
fmt.Printf("电脑猜的是%d,一共猜了%d次,才猜对!", i,num)
}
改进上面代码问题明显是让电脑猜测的次数明显太多,而且不符合人的猜数逻辑,当猜测数过大或者过小时,正确的应该往相反的方向猜,才会快速的猜测正确,下面是改进后的。
package main
import (
"fmt"
"math/rand"
"time"
)
func init() {//初始化随机种子
rand.Seed(time.Now().UnixNano())
}
func main() {var inputNum = 0 //输入让电脑猜测的整数
var num = 0 //猜测次数
var min = 0 //最小值
var max = 101 //大值
var x = 0 //猜测范围[0,x)
fmt.Println("请输入一个数!")
//输入0-100整数
_, _ = fmt.Scanln(&inputNum)
fmt.Println("您输入的数字为:", inputNum)
//初始化生成随机数字
i := rand.Intn(max)
for i != inputNum {if i min = i //太小时,记录最小值
fmt.Println("电脑猜的太小了,猜的是:",i)
}else{ max = i //太大时,记录大值
fmt.Println("电脑猜的太大了,猜的是:",i)
}
x = max - min //不断缩小电脑随机猜测的范围
i = min + rand.Intn(x) //还原电脑随机猜测的数值
num ++ //累计猜测次数
}
fmt.Printf("电脑猜的是%d,一共猜了%d次,才猜对!", i,num)
}
按题目要求用rust编写的结果use rand::Rng;
use std::io;
fn main() {let mut num = 0; //猜测次数
let mut min = 0; //最小值
let mut max = 101; //大值
println!("请输入一个数!");
//输入0-100整数
let mut input_num = String::new();
io::stdin().read_line(&mut input_num).expect("无法读取行");
let input_num:u32 = input_num.trim().parse().expect("请输入一个数字");
//初始化生成随机数字
let mut i:u32 = rand::thread_rng().gen_range(min..max);
while i != input_num {if i< input_num {min = i; //太小时,记录最小值
println!("电脑猜猜的太小了,猜的是:{}",i);
} else {max = i; //太大时,记录大值
println!("电脑猜猜的太大了,猜的是:{}",i);
}
//不断缩小电脑随机猜测的范围
i = rand::thread_rng().gen_range(min..max);
num += 1; //累计猜测次数
}
println!("电脑猜的是{},一共猜了{}次,才猜对!",i,num);
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:实现一个猜数游戏,用户手动输入一个数字,电脑来猜-创新互联
标题网址:http://myzitong.com/article/copije.html