テストコード|(c++)白準2884:目覚まし時計


に質問
尚根は毎朝目覚まし時計が起きるのを聞く.目覚ましを聞いてすぐ起きればいいのに、いつももうちょっと寝たいので、毎日学校に遅刻します.
尚根はあらゆる方法を尽くしたが、もう少し寝ようとしたが、何も解消できなかった.
気の毒な相根の昌英は、自分の使い方を勧めた.
「45分前に目覚まし時計をセットする」ということです.
この方法は簡単です.設定した目覚まし時計を45分前に変更します.どうせアラームが聞こえたら、アラームを消してもう少し寝ますから.この方法では、毎朝もっと寝ているような気がして、学校にも遅刻しません.
現在の尚根で設定されている目覚まし時計の時間を指定し、昌英の方法を使用する場合は、いつに変更すべきかを決定するプログラムを作成します.
質問の表示
🎹入力
第1行は2つの整数HとMを与える.(0≦H≦23,0≦M≦59)は、現在尚根で設定されているアラーム時間HのM分を意味する.
入力時間は24時間で表示されます.24時間の表現では、1日の始まりは0:0(真夜中)、終わりは23:59(翌日の真夜中の1分前).時間を表すとき、不要な0は使いません.
📢しゅつりょく
1行目の上根で昌英の方法を使う場合、設定する目覚まし時計の時間を出力します.(入力と同じ形で出力すればよい.)
ほどく
#include <iostream>

using namespace std;

int main() {

	int hour, minute;
	cin >> hour >> minute;

	minute -= 45;
	if (minute < 0)
	{
		hour -= 1;
		if (hour < 0)
			hour = 23;
		
		minute += 60;
	}

	cout << hour << endl;
	cout << minute << endl;

	return 0;
}
45分前の目覚まし時計は、まず45分外し、0分未満なら時間値を外します.時間値が0未満の場合は23に変更し、毎分60を加算します.終わりだ!
参考資料とサイト(ありがとうございます)
  • https://www.acmicpc.net/problem/2884