懶惰的松雅 湖南大學程式設計作業

2021-10-10 07:54:42 字數 1984 閱讀 5819

通過之前發的一篇部落格,我結識了很多大佬。我自己心裡面清楚,現在我寫的東西對於很多大佬來說不過是小菜一碟,但是呢,我還是希望能夠繼續寫下去,一來鞏固我自己的知識,二來見證我的成長(每個人都是一步一步走上去的嘛),最後呢,也是最重要的,能夠認識很多朋友,能夠有更大的交流空間,我想,這是乙個優秀的程式設計師所必要的條件。

現在轉入正題,我們看到題目,又是松雅,看來小明沒能上大學,我們的大學夥伴變成了松雅了。我們來看看題

如果乙個時間的數字中包含』7』,則她認為是幸運時間,例如:13:07和17:20是幸運的,而00:48和21:34不是。

注意,設定鬧鐘的時間與醒來的時間不一定在同一天,輸入保證對每個醒來時間都有乙個幸運時間。

正常地,可以找到乙個最小的非負整數 y 使得在時間 hh:mm 之前的 yx 分鐘是乙個幸運時間,即包含數字』7』。

時間採用24小時制,因此在23:59之後是00:00。
【輸入形式】

輸入的第一行包含乙個正整數 x (1 ≤ x ≤ 60)。

第二行包含兩個整數,分別代表小時與分鐘( hh:mm )。

【輸出形式】

輸出一行乙個整數,表示松雅需要按「小睡一會兒」按鈕的最小次數。

【樣例輸入1】

311 23

【樣例輸出1】

2【樣例輸入2】

51 7

【樣例輸出2】

0【樣例說明】

在第乙個樣例中,她需要在11:23分醒來,她可以設定鬧鐘的幸運時間為11:17,因此她需要在11:17分和11:20按兩次按鈕。

在第二個樣例中,01:07就是幸運時間。

讓我們來理一理思路,

首先呢,松雅喜歡幸運時間,所以她第一次醒來的時間都會是幸運時間(定了幸運時間就能起床?!對我來說是不存在的。。。)也就是含有數字7。這裡有乙個小細節,題上也給出了,如果最終起床的時間含有數字7,那麼松雅就不會賴床,她會立即起床,也就是沒有按「小睡一會兒」,輸出即為「0」。

幸運時間到

int x,h,m;

cin>>x>>h>>m;

if(h%

10==

7||m%

10==7)

//因為小時和分鐘的第一位都不可能為7,所以只需要判斷第二位

cout<<

'0';

另外還有乙個很重要的細節,即題中所給的

「注意,設定鬧鐘的時間與醒來的時間不一定在同一天」

這意味著在後續的運算中,我們很可能會將前一天的時間考慮進來

這題很香的地方就在於只可能個位數會出現7,我們抓住這個特點來解題。

如果我們將小時轉化成分鐘,我們會發現分鐘上的個位數並不會改變,每小時增加60,個位數不變,那我們大可以把小時全部轉化為分鐘,然後判斷這個數的個位是不是7就行了。

另外還得考慮小時上的7。小時上有7的就只有7和17。也就是7:00~7:59;17:00 ~17:59,換算成分鐘就是420 ~479;1020 ~1079。也就是說當分鐘數到這個數段的時候我們就不用繼續往下算了,這個分鐘數就是幸運時間。

int sum;

//記錄分鐘數

sum=

60*h+m;

int count=0;

//記錄「小睡一會兒」次數

for(;;

)

注意,這裡要判斷sum減去x後會不會小於0,如果小於0就說明到前一天去了,所以我們要加上一天的分鐘數1440。

這題應該算是比較簡單,我寫這個的目的呢是想強調一下程式設計中的細節,在程式設計**了問題,如果大方向是對的,那麼很可能就是細節方面的問題。如果選擇忽略細節的話,那麼你自己無法保證以後會不會再次遇到同樣的問題,最後還是得花時間解決,有時候乙個很龐大的程式,正是因為一些小小的細節造成了整個程式的崩盤,而想找到那個出錯的細節是很費時間的,所以我認為,在程式設計之前就應當仔細思考這些小細節方面的問題,免去之後找bug的麻煩。

湖南大學程式設計作業 成績大排隊

問題描述 讀入n名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入形式 輸入共有n 1行,第一行輸入正整數n 接下來的n行輸入n個學生的資訊,包括姓名 學號和成績。其中姓名和學號均為不超過10個字元的字串,成績為0到100之間的乙個整數。這裡保證每個測試用例中的同學成績都不相...

湖南大學程式設計競賽新生賽(重現賽)

1.從一堆糖果裡取奇數個或偶數個,誤以為是取奇數個糖果的一堆 2.tutu和dada各自一直只能取奇數個和偶數個,因為 and then buy candy alternately 誤認為只有第一輪才有限制,後面隨意 舉了幾組,發現只有當n 1,並且第乙個是偶數時才是dada贏 include us...

弟弟的作業(湖南省第六屆程式設計大賽)

題目描述 你的弟弟剛做完了 100以內數的加減法 這部分的作業,請你幫他檢查一下。每道題目 包括弟弟的答案 的格式為a b c或者a b c,其中a和b是作業中給出的,均為不超過100的非負整數 c是弟弟算出的答案,可能是不超過200的非負整數,也可能是單個字元 表示他不會算。輸入輸入檔案包含不超過...