python笔记-输入随机数组,每轮除了最大数其他加1,使其相等
这个主要是讲到了循环以及列表,只要我们理解了很容易就可以写出来。
思路:
1、输入任意数组
2、定义两个变量,用于取出列表中两个数进行比较
3、当前面数小于等于后面一个数时,两个变量自增1,前面一个数加1;反之,两个数的位置交换,两个变量再自增1,交换后前面一个数加1
4:、当数组中的数全相等时退出循环
下面是代码部分:
方法一:
x_list = 0
y_list = 1
secret = 0
round_number = 0
number = input('请输入数组(数字之间用空格隔开):')
list = [int(n) for n in number.split()]
print('你输入的数组为:',list)
while True:
x = 0
y = 1
while y_list < len(list):
if (list[x_list] < list[y_list] or list[x_list] == list[y_list]):
list[x_list] += 1
x_list += 1
y_list += 1
elif list[x_list] > list[y_list]:
t1 = list[x_list]
list[x_list] = list[y_list]
list[y_list] = t1
list[x_list] += 1
x_list += 1
y_list += 1
if y_list == len(list):
x_list = 0
y_list = 1
round_number += 1
print('第%d轮数组为:'%round_number,list)
while True:
if y < len(list):
if list[x] == list[y]:
x += 1
y += 1
else :
break
else :
secret = 1
break
if secret == 1:
print('经过%d轮'%round_number)
break
结果实例为:
方法二:
rounder = 0
jump_num = 0
number = input('请输入数组(数字之间用空格隔开):')
list = [int(n) for n in number.split()]
while True:
for i in range(1,len(list)):
for j in range(i-1,i):
if list[j] > list[i]:
tmp = list[j]
list[j] = list[i]
list[i] = tmp
list[j] += 1
elif list[j] <= list[i]:
list[j] += 1
rounder += 1
print('第%d轮:'%rounder,list)
for x in range(1,len(list)+1):
if x == len(list):
jump_num = 1
elif list[0] != list[x]:
break
if jump_num == 1:
print('经过%d轮,最终结果为:'%rounder,list)
break