zoukankan      html  css  js  c++  java
  • 第6章-3.列表或元组的数字元素求和 (20分)

    求列表中数字和,列表中嵌套层次不限2层

    输入格式:

    在一行中输入列表或元组

    输出格式:

    在一行中输出数字的和

    输入样例:

    在这里给出一组输入。例如:

    [11,2,[3,7],(68,-1),"123",9]
    
     

    输出样例:

    在这里给出相应的输出。例如:

    99
    递归版本1
     1 # 列表或元组的数字元素求和-递归算法1
     2 # Author: cnRick
     3 # Time  : 2020-4-13
     4 def getSum(items):
     5     if (type(items) == int) or (type(items) == str):
     6         if type(items) == int:
     7             return items
     8         elif type(items) == str:
     9             return 0
    10     else:
    11         if (type(items) == tuple) or (type(items) == list):
    12             result = 0
    13             for i in range(len(items)):
    14                 result += getSum(items[i])
    15             return result
    16         else:
    17             return 0
    18 
    19 items = eval(input())
    20 result = 0
    21 for i in range(len(items)):
    22     result = result + getSum(items[i])
    23 print(result)

    递归版本2

     1 # 列表或元组的数字元素求和-递归算法2
     2 # Author: cnRick
     3 # Time  : 2020-4-13
     4 def flatten(items):
     5     lst = []
     6     for x in items:
     7         if isinstance(x,(list,tuple)) and not isinstance(x,str):
     8             for element in flatten(x):
     9                 lst.append(element)
    10         else:
    11             if type(x)!=str:
    12                 lst.append(x)
    13     return lst
    14 items = eval(input())
    15 I = [num for num in flatten(items)]
    16 print(sum(I))
     
  • 相关阅读:
    Noip2012 开车旅行
    「NOI2018」归程
    2019.10.30 队测(晚上)
    洛谷P1138 第k小整数
    洛谷P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold
    Noip-pj2018游记
    洛谷P4994 终于结束的起点
    《退役的你》
    《膜你抄》
    洛谷P5087 数学
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/12694488.html
Copyright © 2011-2022 走看看