|
发表于 2020-3-7 01:08:03
|
显示全部楼层
- def find_0_index(num): # 找到所有0的序号
- index_list = []
- for i in range(1,len(num)):
- if num[i] == '0':
- index_list.append(i)
- return index_list
- def change_0_1(num,index_list): # 随机改变一个0为1
- num_0 = '1' + num[1:]
- num_change_list = [num,num_0]
- if '0' in num:
- for i in index_list:
- change_num = num[:i] + '1' + num[(i+1):]
- num_change_list.append(change_num)
- return num_change_list
-
- def max_length(num_change_list,nb): # 找到最长的1
- max_num = 0
- final_num = 0
- for num in num_change_list:
- max_list = num.split('0')
- for i in max_list:
- if len(i) > max_num:
- max_num = len(i)
- final_num = num
- print("10进制【%d】改为二进制数字是【%s】" % (nb,bin(nb)[2:]))
- print("最长的一串 1 有【%d】个,这个数字改变后是【%s】" % (max_num,final_num))
-
- number = int(input("请输入一个数字:"))
- num_to_2 = bin(number)[2:]
- ind_list = find_0_index(num_to_2)
- n_c_list = change_0_1(num_to_2,ind_list)
- max_length(n_c_list,number)
复制代码 |
评分
-
查看全部评分
|