返回列表 發帖

202404新手1-電影院


電影院 (Cinema)
問題敘述
你突然想看場電影,於是你上網查了一下附近電影院的電影時刻表。你不想等太久,所以決定找一部最早開始放映的電影來看。不過考慮到你還需要抵達電影院並買票和爆米花,你需要預留至少20分鐘的時間(從現在開始算起)。
請撰寫一個程式,給定現在的時間和一系列電影開始的時間(電影時刻已經排序),找出你最早可以觀看的電影時刻。電影時刻以24小時制表示。


附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊
May

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. // 定義電影開始時間的結構
  4. struct MovieTime {
  5.     int hour, minute;
  6. };

  7. // 轉換時間為分鐘
  8. int toMinutes(int hour, int minute) {
  9.     return hour * 60 + minute;
  10. }

  11. int main() {
  12.     int N; // 電影數量
  13.     vector<MovieTime> movieTimes; // 電影時刻表

  14.     // 讀取電影數量
  15.     cin >> N;

  16.     // 讀取電影開始時間
  17.     for (int i = 0; i < N; ++i) {
  18.         int movieHour, movieMinute;
  19.         cin >> movieHour >> movieMinute;
  20.         movieTimes.push_back({movieHour, movieMinute});
  21.     }
  22.     // 讀取當前時間和電影數量
  23.     int currentHour, currentMinute;
  24.     cin >> currentHour >> currentMinute;

  25.     // 將當前時間轉換為分鐘
  26.     int currentTimeInMinutes = toMinutes(currentHour, currentMinute);


  27.     // 尋找最早可以觀看的電影時刻
  28.     for (auto  movieTime : movieTimes) {
  29.         int movieTimeInMinutes = toMinutes(movieTime.hour, movieTime.minute);
  30.         // 需要至少15分鐘的準備時間
  31.         if (movieTimeInMinutes - currentTimeInMinutes >= 20) {
  32.             cout << movieTime.hour << " " << movieTime.minute << endl;
  33.             return 0;
  34.         }
  35.     }

  36.     cout << "Too Late" << endl; // 找不到合適的電影時刻
  37.     return 0;
  38. }
  39. /*
  40. 3
  41. 14 50
  42. 15 05
  43. 16 00
  44. 14 30
  45. 輸出
  46. 14 50
  47. */
複製代碼
May

TOP

回復 1# may
c++中setw()與setfill()的用法
setw()預設填入的內容為空格,可以setfill()配合使用設定其他字元填入。
如:
cout<<setfill('*')<<setw(5)<<'a'<<endl;
則輸出:
****a //4個*和字元a共佔5個位置。
所謂域寬,就是輸出的內容(數值或字元等等)需要佔據多少個字元的位置,如果位置有剩餘則會自動補足。例如我們要設定域寬為2,那麼當輸出一位數1的時候輸出的就是“ 1”,也就是在1前面加了一個空格。空格和數字1正好總共佔用了兩個字元的位置。
我們在設定域寬和填充字元的時候要注意幾點:
①設定域寬的時候應該填入整數,設定填充字元的時候應該填入字元。
②我們可以對一個要輸出的內容同時設定域寬和填充字符,但是設定好的屬性僅對下一個輸出的內容有效,之後的輸出要再次設定。即cout <<setw(2) <<a <<b;語句中域寬設定只對a有效,對b無效。。
                        
原文链接:https://blog.csdn.net/chen_zan_yu_/article/details/86663579
May

TOP

返回列表