Agregar n duraciones de tiempo dadas

Dadas n duraciones de tiempo en forma de MM : SS , donde MM denota minutos y SS denota segundos. La tarea es agregar toda la duración del tiempo y la respuesta de salida en forma de HH: MM: SS .
Ejemplos: 
 

Input : n = 5
        duration1 = 0 : 45
        duration1 = 2 : 31
        duration1 = 3 : 11
        duration1 = 2 : 27
        duration1 = 1 : 28
Output : 0 : 10 : 22
Initially, sum = 0
On adding duration 1, sum = 0 hour 0 minutes 45 seconds.
On adding duration 2, sum = 0 hour 3 minutes 16 seconds.
On adding duration 3, sum = 0 hour 6 minutes 27 seconds.
On adding duration 4, sum = 0 hour 8 minutes 54 seconds.
On adding duration 5, sum = 0 hour 10 minutes 22 seconds

La idea es convertir toda la duración del tiempo dado a segundos. Una vez que conocemos la duración en segundos, podemos calcular la suma de duraciones en segundos. 
Para obtener el número de horas, tenemos que dividir la duración total en segundos por 3600. El resto se usa para calcular el número de minutos y segundos. Al dividir el resto por 60 obtenemos el número de minutos, y el resto de esa división es el número de segundos.
A continuación se muestra la implementación de este enfoque: 
 

C++

// CPP Program to find the sum of all duration
// in the form of MM : SS.
#include <bits/stdc++.h>
using namespace std;
 
// Print sum of all duration.
void printSum(int m[], int s[], int n)
{
    int total = 0;
 
    // finding total seconds
    for (int i = 0; i < n; i++) {
        total += s[i];
        total += (m[i] * 60);
    }
 
    // print the hours.
    cout << total / 3600 << " : ";
    total %= 3600;
 
    // print the minutes.
    cout << total / 60 << ": ";
    total %= 60;
 
    // print the hours.
    cout << total << endl;
}
 
// Driven Program
int main()
{
    int m[] = { 0, 2, 3, 2, 1 };
    int s[] = { 45, 31, 11, 27, 28 };
    int n = sizeof(m)/sizeof(m[0]);
    printSum(m, s, n);
    return 0;
}

Java

// Java Program to find the
// sum of all duration in
// the form of MM : SS.
class GFG
{
     
    // Print sum of all duration.
    static void printSum(int m[],
                    int s[], int n)
    {
        int total = 0;
     
        // finding total seconds
        for (int i = 0; i < n; i++)
        {
            total += s[i];
            total += (m[i] * 60);
        }
     
        // print the hours.
        System.out.print(total / 3600 + " : ");
        total %= 3600;
     
        // print the minutes.
        System.out.print(total / 60 +": ");
        total %= 60;
     
        // print the hours.
        System.out.println(total);
    }
     
// Driver code
public static void main (String[] args)
{
    int m[] = {0, 2, 3, 2, 1 };
    int s[] = { 45, 31, 11, 27, 28 };
    int n = m.length;
     
    printSum(m, s, n);
}
 
}
 
// This code is contributed by Anant Agarwal.

Python3

# Python3 code to find the sum of
# all duration in the form of MM : SS.
 
# Print sum of all duration.
def printSum (m, s, n ):
    total = 0
     
    # finding total seconds
    for i in range(n):
        total += s[i]
        total += (m[i] * 60)
     
    # print the hours.
    print(int(total / 3600) , end= " : ")
    total %= 3600
     
    # print the minutes.
    print(int(total / 60) , end=": ")
    total %= 60
     
    # print the hours.
    print(int(total))
 
# Driven Code
m = [ 0, 2, 3, 2, 1 ]
s = [ 45, 31, 11, 27, 28 ]
n = len(m)
printSum(m, s, n)
 
# This code is contributed by "Sharad_Bhardwaj".

C#

// C# Program to find the
// sum of all duration in
// the form of MM : SS.
using System;
 
class GFG
{
     
    // Print sum of all duration.
    static void printSum(int []m,
                    int []s, int n)
    {
        int total = 0;
     
        // finding total seconds
        for (int i = 0; i < n; i++)
        {
            total += s[i];
            total += (m[i] * 60);
        }
     
        // print the hours.
        Console.Write(total / 3600 + " : ");
        total %= 3600;
     
        // print the minutes.
        Console.Write(total / 60 +": ");
        total %= 60;
     
        // print the hours.
        Console.Write(total);
    }
     
    // Driver code
    public static void Main ()
    {
        int []m = {0, 2, 3, 2, 1 };
        int []s = { 45, 31, 11, 27, 28 };
        int n = m.Length;
         
        printSum(m, s, n);
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP Program to find the
// sum of all duration
// in the form of MM : SS.
 
// Print sum of all duration.
function printSum($m, $s, $n)
{
    $total = 0;
 
    // finding total seconds
    for ($i = 0; $i < $n; $i++)
    {
        $total += $s[$i];
        $total += ($m[$i] * 60);
    }
 
    // print the hours.
    echo floor($total / 3600) , " : ";
    $total %= 3600;
 
    // print the minutes.
    echo floor($total / 60) ,": ";
    $total %= 60;
 
    // print the hours.
    echo floor($total) ;
     
}
 
    // Driver Code
    $m = array(0, 2, 3, 2, 1);
    $s= array(45, 31, 11, 27, 28);
    $n = count($m);
    printSum($m, $s, $n);
 
// This code is contributed by anuj_67.
?>

Javascript

<script>
// javascript Program to find the
// sum of all duration in
// the form of MM : SS.
   
 
       
    // Print sum of all duration.
    function printSum(m, s, n)
    {
        var total = 0;
       
        // finding total seconds
        for (var i = 0; i < n; i++)
        {
            total += s[i];
            total += (m[i] * 60);
        }
       
        // print the hours.
        document.write((total / 3600).toFixed(0) + " : ");
        total %= 3600;
       
        // print the minutes.
        document.write((total / 60).toFixed(0) +": ");
        total %= 60;
       
        // print the hours.
        document.write(total);
    }
       
    // Driver code
 
        var m = [0, 2, 3, 2, 1 ];
        var s = [45, 31, 11, 27, 28 ];
        var n = m.length;
           
        printSum(m, s, n);
         
        // This code is contributed by bunnyram19
</script>

Producción: 

0 : 10: 22

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)
 

Publicación traducida automáticamente

Artículo escrito por anuj0503 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 *