976 次浏览
当需要使用递归技术展平给定的嵌套列表时,可以使用简单的索引和“isinstance”方法以及递归。递归计算较大问题的小部分的输出,并将这些部分组合起来,以给出较大问题的解决方案。示例如下所示:- 实时演示def flatten_list(my_list): 如果 my_list == []: 返回 my_list 如果 isinstance(my_list[0], list): 返回 flatten_list(my_list[0]) + flatten_list(my_list[1:]) 返回 my_list[:1] + flatten_list(my_list[1:]) my_list = [[1, 2], [3, 4], [90, 11], [56, 78], [[34, 56]]] print("列表为:") print(my_list) print("展平后的列表为:") ... 阅读更多
2K+ 次浏览
当需要使用递归技术反转字符串时,可以使用用户定义的方法以及递归。递归计算较大问题的小部分的输出,并将这些部分组合起来,以给出较大问题的解决方案。示例如下所示:- 实时演示def reverse_string(my_string): 如果 len(my_string) == 0: 返回 my_string 否则: 返回 reverse_string(my_string[1:]) + my_string[0] my_str = str(input("输入需要反转的字符串:")) print("字符串为:") print(my_str) print("反转后的字符串为:") print(reverse_string(my_str))输出输入需要反转的字符串: ... 阅读更多
3K+ 次浏览
当需要使用递归技术检查字符串是否为回文时,可以使用简单的索引和用户定义的函数以及递归。回文是指从左到右和从右到左读取时,其各个索引处字符相同的字符串或值。递归计算较大问题的小部分的输出,并将这些部分组合起来,以给出较大问题的解决方案。以下是一个示例:- 实时演示def check_palindrome(my_str): 如果 len(my_str) < 1: 返回 True 否则: 如果 ... 阅读更多
536 次浏览
当需要使用递归技术查找两个数字的乘积时,可以使用简单的 if 条件和递归。递归计算较大问题的小部分的输出,并将这些部分组合起来,以给出较大问题的解决方案。示例如下所示:- 实时演示def compute_product(val_1,val_2): 如果(val_1
当需要使用递归技术判断一个数是否为素数时,可以定义一个方法并使用“while”条件。递归计算较大问题的小部分的输出,并将这些部分组合起来,以给出较大问题的解决方案。示例如下所示:- def check_prime(my_num, my_val = None): 如果 my_val 为 None: my_val = my_num – 1 当 my_val >= 2 时: 如果 my_num % my_val == 0: print(“该数不是素数”) ... 阅读更多
296 次浏览
当需要反转一个旋转数组时,可以定义一个方法,该方法遍历列表并反转列表。定义另一个方法来旋转列表,并定义另一个方法来显示列表。可以使用简单的循环和索引来实现这一点。以下是一个示例:- 实时演示def reverse_list(my_list, begin, end): 当 (begin < end) 时: temp = my_list[begin] my_list[begin] = my_list[end] my_list[end] = temp begin += 1 end = end-1 def left_rotate(my_list, to_rotate): n ... 阅读更多
1K+ 次浏览
当需要确定给定数字是否为哈沙德数时,可以使用简单的循环和“%”运算符、“+”运算符和“//”运算符。哈沙德数也称为尼文数。它是一个基数为整数的数,当它写成该基数时,可以被其数字之和整除。以下是一个示例:- 实时演示my_num = 134 remaining = sum_val = 0 print("正在复制要检查的数字...") my_num_copy = my_num; 当(my_num > 0)时: remaining ... 阅读更多
642 次浏览
当需要打印 1 到 100 之间的所有快乐数时,可以使用简单的循环和“%”、“+”和“//”之类的运算符。快乐数是指最终结果为 1 的数,当它被替换为数字中每个数字的平方和时。要打印给定范围内的快乐数,可以使用简单的循环。以下是一个示例:- 实时演示def check_happy_num(my_num): remaining = sum_val = 0 当(my_num > 0)时: remaining = my_num%10 sum_val = sum_val + (remaining*remaining) ... 阅读更多
当需要打印 1 到 100 之间的所有迪斯阿里姆数时,可以在 1 到 100 之间运行一个简单的循环,并计算每个数字的长度,并将位置的幂乘以数字本身。如果它们相等,则认为它是一个迪斯阿里姆数。迪斯阿里姆数是指其数字的和与其各自位置的幂相等其自身原始数字的数。以下是一个示例:- 实时演示def length_calculation(my_val): len_val = 0 当(my_val != 0)时: ... 阅读更多
271 次浏览
当需要检查给定数字是否为迪斯阿里姆数时,会计算其数字的幂和与其各自位置的幂之和。在此之前,会确定数字中存在的数字个数。迪斯阿里姆数是指其数字的和与其各自位置的幂相等其自身原始数字的数。以下是一个示例:- 实时演示def length_calculation(num_val): length = 0 当(num_val != 0)时: length = length + 1 num_val = num_val//10 返回 length my_num = 192 remaining ... 阅读更多