guess

[LeetCode] 374. Guess Number Higher or Lower

妖精的绣舞 提交于 2019-12-03 00:19:50
这也是一个通过二分法调用API猜数字大小的题目。注意判断的边界是从1到N。这题没有提供JavaScript的API所以我就直接上Java的代码了。 时间O(logn) 空间O(1) 1 /* The guess API is defined in the parent class GuessGame. 2 @param num, your guess 3 @return -1 if my number is lower, 1 if my number is higher, otherwise return 0 4 int guess(int num); */ 5 6 public class Solution extends GuessGame { 7 public int guessNumber(int n) { 8 int start = 1; 9 int end = n; 10 while (start + 1 < end) { 11 int mid = start + (end - start) / 2; 12 if (guess(mid) == 0) { 13 return mid; 14 } else if (guess(mid) == 1) { 15 start = mid; 16 } else { 17 end = mid; 18 } 19 } 20 if

C++实现巴比伦算法

匿名 (未验证) 提交于 2019-12-02 23:43:01
用于计算数字n的平方根的巴比伦算法如下: a.先猜一个答案guess(可以将n/2作为第一个答案) b.计算r = n/guess c.令guess = (guess + r)/2 d.如有必要返回第2步重复多次。步骤2和步骤3重复的次数越多,guess就越接近n的平方根。 写一个程序,输入整数作为n的值,重复执行巴比伦算法,直到guess与前一个guess的误差在1%范围内,将答案作为一个double输出。 代码如下: #include <iostream> double babi ( int n ) { double guess = n / 2 ; //以n/2作为第一个答案 double tmp = guess ; //获取第一个答案的值 while ( 1 ) { double r = n / guess ; //计算 guess = ( guess + r ) / 2 ; //通过这两个步骤,得到一个新的值 if ( abs ( tmp - guess ) < 0.01 ) { //让第一个答案的值和第二个答案的值比较比较再除于第一个答案的值 < 0.01 break ; } tmp = guess ; //如果不符合if条件,就第二个值赋值给第一个值,再进行判断,知道两个值的差值小于 0.01。 } return tmp ; } 输出截图: 转载请标明出处: C+

luoguUVA11995 I Can Guess the Data Structure

匿名 (未验证) 提交于 2019-12-02 23:06:17
版权声明:本文为博主原创文章,未经博主允许不得转载,不得用于商业用途。 https://blog.csdn.net/WDAJSNHC/article/details/88086638 luoguUVA11995 I Can Guess the Data Structure 试题描述 你有一个类似“包包”的数据结构,支持两种操作,如下表所示。 1x:把元素x放进包包 2:从包包中拿出一个元素 给出一系列操作以及返回值,你的任务是猜猜这个“包包”到底是什么。它可能是一个栈<后进先出),队列(先进先出),优先队列(数值大的整数先出)或者其他什么奇怪的东西。 输入 第一行为一个整数n(1≤n≤1 000)。以下n行每行要么是一条类型1的命令,要么是一条类型2的命令后面跟着一个整数x(1≤x≤100)。这个整数x表示执行完这条类型2的命令后,包包无错地返回了x。输入文件大小不超过1MB。 输出 输出一行。一共有5种可能的输出。 stack:一定是一个栈 queue:一定是一个队列 priority queue:一定是一个优先队列 impossible:一定不是以上三种 not sure:至少有两种是可能的 输入示例: 5 1 5 1 3 1 2 2 2 2 3 输出示例: stack 输入输出样例 输入样例#1: 6 1 1 1 2 1 3 2 1 2 2 2 3 6 1 1 1 2 1 3

python 猜单词游戏 代码

匿名 (未验证) 提交于 2019-12-02 22:51:30
NUM_DIGITS = 3 MAX_GUESS = 10 def getSecrectNum (): ''' 随机获取三个数字 :return: ''' numbers = list ( range ( 10 )) random . shuffle ( numbers ) secrectNum = '' for i in range ( NUM_DIGITS ): secrectNum += str ( numbers [ i ]) return secrectNum def getClues ( guess , secretNum ): ''' 用户输入的数字和,系统产生的秘密数字进行比对 :param guess: :param secretNum: :return: ''' if guess == secretNum : print ( 'Oh my god , You go it!' ) clues = [] for i in range ( len ( guess )): if guess [ i ] == secretNum [ i ]: clues . append ( 'Fermi' ) elif guess [ i ] in secretNum : clues . append ( 'Pico' ) if len ( clues ) == 0 : return

Python小程序练习一之登陆接口

匿名 (未验证) 提交于 2019-12-02 22:51:30
登陆接口并实现猜数字游戏 输入用户名密码 认证成功后显示欢迎信息 进行猜数字游戏,可猜三次 输错三次后锁定 1、Adduser.py 1 # The author is tou 2 import pickle 3 #初始化用户以及密码 4 user_dict = { "admin" :{ "passwd" : "admin" , "flag" : "unlock" }} #字典 5 6 #把账号,密码保存到文件中 7 with open ( "admin.txt" , "wb+" ,) as f_write : 8 pickle . dump ( user_dict , f_write ) 9 with open ( "admin.txt" , "rb+" ) as f_read : 10 x = pickle . load ( f_read ) 11 print ( x ) 添加用户 2、Log In.py 1 # The author is tou 2 import pickle 3 import random 4 5 with open ( "admin.txt" , "rb+" ) as f : #载入用户账户密码信息 6 user_dict = pickle . load ( f ) 7 exit_flag = False #初始化锁定的状态为false 8 count

python游戏练手--猜数字

匿名 (未验证) 提交于 2019-12-02 22:51:30
#!/usr/bin/env python#coding=utf-8import random#将玩家猜测过的数字保存到这个变量中,因为玩家还没有做过任何猜测,所以保存的是整数0guessesTaken = 0print('Hello! What is your name?')MyName = input()#判断输入到MyName中的值是否存在#不存在的话,就告诉用户需要输入字符串,不能直接回车或者空格代替if MyName == "": print('Hello! What is your name? please input string') MyName = input()else: #如果没有问题,直接输出客户的输入到控制台,让客户确认 print('Your name is ' + MyName)#生成一个随机数并存入number变量中number = random.randint(1, 20)print('Well, ' + MyName + ', I am thinking of a numbert betwen 1 and 20.')for i in range(1,7): print('Take a guess.') # guess = input() #用户输入字符串 # guess = int(guess) #将用户输入的字符串转变为整数格式

Python学习之While语句小游戏

匿名 (未验证) 提交于 2019-12-02 22:11:45
版权声明:指剑 https://blog.csdn.net/fly1574/article/details/90403078 import random secret = random.randint(1,10) temp = input('不妨猜一下我现在心里想的数字:') guess = int(temp) while guess != secret: temp = input('猜错了,重新猜一下吧:') guess = int(temp) if guess == secret: print('我丢,你咋知道我想的是这呢?') else: if guess >secret: print('嘿,大了大了') else: print('又小了') print('Game Over,不玩了') 文章来源: https://blog.csdn.net/fly1574/article/details/90403078

day1-for循环

末鹿安然 提交于 2019-12-01 20:33:34
1 # 重复做一件事情 2 # 循环,遍历,迭代 3 # python中循环有两种:while和for 4 #break,循环里面遇到break,循环立即结束 5 #continue,循环里面遇到continue,就结束本次循环,进入下一次循环 6 # 猜数字,随机产生一个数字 7 # 最多猜7次 8 import random 9 num = random.randint(1,100) 10 print(num) 11 for i in range(7): 12 guess = int(input('请输入一个数字:')) 13 if guess == num: 14 print("猜对了,游戏结束") 15 break 16 elif guess > num: 17 print("猜大了,游戏继续") 18 continue 19 else: 20 print("猜小了,游戏继续") 21 continue 22 else: 23 print("猜的次数大于7次,游戏结束") 来源: https://www.cnblogs.com/hujc/p/11717076.html

算法学习:二分法

。_饼干妹妹 提交于 2019-12-01 10:23:36
说明: 函数binary_search接受一个有序数组和一个元素,如果指定的元素包含在数组中,这个函数将返回其位置。开始时查找整个数组,每次检查中间的元素,如果猜的数小了,对应修改low;如果猜的数大了,对应修改high。 代码: 1 def binary_search(list1,item): 2 low = 0 3 high = len(list1)-1 4 5 while low <= high: #只要范围没有缩小到只包含一个元素 6 mid = (low+high)//2 #检查中间元素 7 guess = list1[mid] 8 if guess == item: 9 return mid #返回索引 10 if guess > item: 11 high = mid -1 12 if guess < item: 13 low = mid + 1 14 15 return None 16 17 my_list = [1,3,5,7,9] 18 19 print(binary_search(my_list,7)) 20 print(binary_search(my_list,3)) 21 print(binary_search(my_list,-1)) 结果: 3 1 None 来源: https://www.cnblogs.com/hqq2019-10/p

Python3基础-递归函数

拈花ヽ惹草 提交于 2019-12-01 10:08:07
递归 1、递归定义:在调用一个函数的过程中直接或间接调用自身本身 #猜中数字的游戏 import random def guess_num(num,guess): if num > guess: print("num 大于 guess,请继续输入") guess = int(input("请输入大于当前guess的数字")) guess_num1=guess_num(num,guess) return guess_num1 elif num < guess: print("num 小于于 guess,请继续输入") guess = int(input("请输入小于当前guess的数字")) guess_num2=guess_num(num,guess) return guess_num2 else: print("猜中了") return guess num = random.randint(0, 100) guess=int(input("请输入1-100的数字")) guess_num1=guess_num(num,guess) print(guess_num1) """ 执行结果 请输入1-100的数字10 num 大于 guess,请继续输入 请输入大于当前guess的数字50 num 大于 guess,请继续输入 请输入大于当前guess的数字60 num 大于