👤

Se dau numerele naturale h m, reprezentând un ora curentă exprimată în ore şi minute. Să se determine care va fi ora peste x ore şi y minute.
Programul citește de la tastatură numerele h1 m1 x y.
Programul afișează pe ecran numerele h2 m2, separate printr-un spaţiu, cu semnificaţia din enunţ.
0 ≤ h1, h2 ≤ 23
0 ≤ m1, m2, y ≤ 59
0 ≤ x ≤ 10000



Răspuns :

#include <iostream>
using namespace std;

int h1, m1, x, y;

int main()
{
    cin >> h1 >> m1 >> x >> y;
    cout << (h1 + (m1 + y) / 60 + x) % 24 << ' ' << (m1 + y) % 60 << '\n';
}
Deci, prima data explicatia
Ora initiala este:   h1:m1
prima si prima data adaugam cele y minute

deci m2=m1+y;
un exemplu(50+80 =>130, din aceste 130 de minute, trebuie sa lasam doar 10 la minute si sa punem 2 la ore)  Acele 10 minute le aflam asa: m2 = (m1+y)%60; iar cele 2 ore le aflam asa:  h2 = h1+(m1+y)/60;

acum la m2 avem minutul final, insa la h2 e posibil sa avem o ora peste 24, asta o putem rezolva foarte usor asa: h2=h2%24;

Deci ca asta ar fi algoritmul

int h1,m1,x,y,h2,m2;
cin>>h1>>m1>>x>>y;
m2 = (m1+x)%60;
h2 = h1+(m1+x)%60;
h2=h2%24;
cout<<h2<<" "<<m2;