Editorial for Conversión de tiempo
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Para este problema, definimos X como la máxima cantidad de horas dados N segundos. A N le restamos 3600X (3600 es la cantidad de segundos que hay en una hora). Después, definimos Y como la máxima cantidad de minutos dados N segundos. A N le restamos 60Y (60 es la cantidad de segundos que hay en un minuto). Lo que nos queda de N son los segundos restantes, por lo que nuestro resultado final sería X Y N.
Código de ejemplo
#include<iostream>
using namespace std;
int main(){
int n; cin>>n; //1
int X = n/3600; //2
n = n - 3600*X; //3
int Y = n / 60; //4
n = n - 60*Y; //5
//6
cout<<X<<" "<<Y<<" "<<n; //7
return 0;
}
Explicación del código
- Definimos y recibimos la cantidad de segundos:
N. - Definimos
Xcomo la cantidad de horas completas que hay dadosNsegundos. Como estamos manipulando enteros, en Cpp, si el resultado no es entero, se tomá el valor entero hacia abajo más cercano. Ej. 10/3=3, 99/10=9, 5/2=2 - A
Nle restamos la cantidad de segundos que abarcanXhoras completas (3600 segundos por hora)(Nserá una cantidad entré 0 y 3599) - Definimos
Ycomo la cantidad de minutos completos hay dados los segundos que no completaron una hora. - A
Nle restamos la cantidad de segundos que abarcan Y minutos completos (60 segundos por minuto)(Nserá una cantidad entre 0 y 59) - Ya tenemos cuántas horas, minutos que no completaron una hora, y segundos que no completaron un minuto, dados
Nsegundos. - Imprimimos los valores separados por un espacio.
Comments