Programa de Python para encontrar la suma de números negativos, positivos pares e impares positivos en una lista

Dada una lista. La tarea es encontrar la suma de los números Negativos, Positivos Pares y Positivos Impares presentes en la Lista.

Ejemplos:

Input: -7 5 60 -34 1 
Output: 
Sum of negative numbers is  -41 
Sum of even positive numbers is  60 
Sum of odd positive numbers is  6

Input: 1 -1 50 -2 0 -3
Output:
Sum of negative numbers is  -6
Sum of even positive numbers is  50
Sum of odd positive numbers is  1

Los números negativos son los números menores que 0, mientras que los números pares positivos son los números mayores que 0 y también son divisibles por 2. En este caso, se supone que 0 es un número par positivo. 

Acercarse:

  • El primer enfoque ingresa una lista de números del usuario.
  • Se ejecutan dos bucles, uno para los números positivos y otro para los números negativos, calculando la suma de los números.
  • Si n es el tamaño de la lista de números,
  • se necesita una complejidad de tiempo O (2n), para iterar sobre la lista de números dos veces.

Python3

class Sumofnumbers:
    
    # find sum of negative numbers
    def negSum(self, list):
  
        # counter for sum of
        # negative numbers
        neg_sum = 0
  
        for num in list:
  
            # converting number
            # to integer explicitly
            num = int(num)
  
            # if negative number
            if(num < 0):
  
                # simply add to the
                # negative sum
                neg_sum + = num
  
        print("Sum of negative numbers is ", neg_sum)
  
    # find sum of positive numbers
    # according to categories
    def posSum(self, list):
  
        # counter for sum of
        # positive even numbers
        pos_even_sum = 0
  
        # counter for sum of
        # positive odd numbers
        pos_odd_sum = 0
        for num in list:
  
            # converting number
            # to integer explicitly
            num = int(num)
  
            # if negative number
            if(num >= 0):
  
                # if even positive
                if(num % 2 == 0):
  
                    # add to positive
                    # even sum
                    pos_even_sum + = num
                else:
  
                    # add to positive odd sum
                    pos_odd_sum + = num
  
        print("Sum of even positive numbers is ",
              pos_even_sum)
  
        print("Sum of odd positive numbers is ",
              pos_odd_sum)
  
  
# input a list of numbers
list_num = [-7, 5, 60, -34, 1]
  
# creating an object of class
obj = Sumofnumbers()
  
# calling method for  sum
# of all negative numbers
obj.negSum(list_num)
  
# calling method for
# sum of all positive numbers
obj.posSum(list_num)

Producción:

Sum of negative numbers is  -41
Sum of even positive numbers is  60
Sum of odd positive numbers is  6

El segundo enfoque calcula la suma de los números respectivos en un solo ciclo. Mantiene tres contadores para cada una de las tres condiciones, comprueba la condición y, en consecuencia, suma el valor del número en la suma actual. Si n es el tamaño de la lista de números, se necesita una complejidad de tiempo O(n) para iterar sobre la lista de números una vez. 

Python3

class Sumofnumbers:
    # find sum of numbers
    # according to categories
    def Sum(self, list):
  
        # counter for sum
        # of negative numbers
        neg_sum = 0
  
        # counter for sum of
        # positive even numbers
        pos_even_sum = 0
  
        # counter for sum of
        # positive odd numbers
        pos_odd_sum = 0
  
        for num in list:
  
            # converting number
            # to integer explicitly
            num = int(num)
  
            # if negative number
            if(num < 0):
                
                # simply add
                # to the negative sum
                neg_sum += num
            # if positive number
            else:
                
                # if even positive
                if(num % 2 == 0):
                    
                    # add to positive even sum
                    pos_even_sum + = num
                else:
                      
                    # add to positive odd sum
                    pos_odd_sum + = num
        print("Sum of negative numbers is ",
              neg_sum)
        print("Sum of even positive numbers is ",
              pos_even_sum)
        print("Sum of odd positive numbers is ",
              pos_odd_sum)
  
  
# input a list of numbers
list_num = [1, -1, 50, -2, 0, -3]
  
# creating an object of class
obj = Sumofnumbers()
  
# calling method for
# largest sum of all numbers
obj.Sum(list_num)

Producción: 

Sum of negative numbers is  -6
Sum of even positive numbers is  50
Sum of odd positive numbers is  1

Publicación traducida automáticamente

Artículo escrito por yippeee25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *