#有一堆100块的石头,2个人轮流随机从中取1-5块,谁取最后一块就谁win,编程实现
import random
stones = 100
count = 0
while stones > 0:
c = random.randint(1,5)
if c > stones:
c = stones
if count % 2 == 0:
print("第二个人取了%s块石头" %c)
else:
print("第一个个取了%s块石头" %c)
stones -= c
count += 1
#实现一个方法,判断一个正整数是否是2的乘方,比如16是2的4次方,返回True;18不是2的乘方,返回False。
#要求性能尽可能高。
def check(n):
count = 0
while True:
if 2 ** count == n:
return True
elif 2 ** count > n:
return False
else:
count += 1
print(check(18))
print(check(8))
print(check(2))
#lista = ['a','abc','d','abc','fgi','abf'],寻找列表中出现次数最多的第一个字母,
# 出现了几次
lista = ['a','abc','d','abc','fgi','abf']
lista_str = ''.join(lista)
max_code = lista_str[0]
max_number = lista.count(max_code)
for letter in lista_str:
if lista_str.count(letter) > max_number:
max_code = letter
max_number = lista_str.count(letter)
print(max_code,max_number)
#平衡点,一个数组,有一个数字左边所有的数字加起来的总和等于这个数右边所有数字的总和,请输出这个数以及坐标
array_list = [4,3,2,8,7,2]
for index in range(len(array_list)):
if sum(array_list[:index]) == sum(array_list[index+1:]):
print("平衡点的数字是:%s,平衡点的坐标是:%s" %(array_list[index],index))
break
else:
print("无平衡点")
#输入一个数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
array_list = [4,3,2,8,7,2]
max_value = max(array_list)
max_value_index = array_list.index(max_value)
min_value = min(array_list)
min_value_index = array_list.index(min_value)
array_list[max_value_index],array_list[0] = array_list[0],array_list[max_value_index]
array_list[min_value_index],array_list[-1] = array_list[-1],array_list[min_value_index]
print(array_list)
#给定一个数组和数,求出数组中两个数的和等于给定的数,并返回坐标
def findIndex(nums,target):
result ={}
for index in range(len(nums)):
second_num = target - nums[index]
if nums[index] in result:
print(result)
return result[nums[index]],index
else:
result[second_num] = index
print(findIndex([4,3,2,8,7,2],10))