Windows应用程序设计作业(Python版实现)
作业1-语法
1、任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。
'''
函数名称:test_for_rule
函数功能:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,
得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。
最新版本:2020/10/20
'''
def test_for_rule(n, change_list):
change_list.append(n)
if n == 1: # 若干次后结果为1 (递归出口)
return
if n % 2 == 1: # 该自然数为奇数
n = (int) (n * 3 + 1)
else: # 该自然数为偶数
n = (int) (n / 2)
test_for_rule(n, change_list) # 递归调用
'''
主 函 数(程序入口)
最新版本:2020/10/20
作 者: ZhaoYiman
'''
if __name__ == '__main__':
while True:
n = (int)(input("Please input a nature number:")) # 输入一个自然数
change_list = [] # 创建一个list列表,存所有的变化过程
test_for_rule(n,change_list) # 函数调用
print(change_list) # 结果输出
2、给定一个含有n个元素的数组,找出数组中的两个元素X和Y使得abs(x-y)最小。
'''
函数名称:find_two_elements
函数功能:给定一个含有n个元素的数组,找出数组中的两个元素X和Y使得abs(x-y)最小。
最新版本:2020/10/20
'''
def find_two_elements(n_array):
n_array.sort() # 原数组排序
diff_array = [] # 依次存储相邻两值之差
for i in range(len(n_array) - 1):
diff_array.append(abs(n_array[i+1] - n_array[i]))
# print(diff_array)
value, x, y = 0, n_array[0], n_array[1] # 初始化
for i in range(len(diff_array)): # 遍历整个差值数组,并进行动态修改
if</