L1-018 大笨钟 (10 point(s)) (测试点四)
-
hh - 12 + bool(mm)
看别人代码里面发现了这个神奇的用法,bool() 意思应该是 mm 非零的时候返回 1 。
-
写完的时候卡了一个测试点,想了想应该是时间边界的问题。重新看了题目,同时试了下 12:00 的时候是什么。结果果然有问题什么也没有输出。
同时根据条件 “午夜00:00到中午12:00期间,笨钟是不敲的” 所以这里得改一下,要小于等于。
if(hh <= 12)
#include <bits/stdc++.h>
using namespace std;
int main(){
int hh, mm;
char c;
cin >> hh >> c >> mm;
// 前半天
if(hh <= 12)
printf("Only %02d:%02d. Too early to Dang.", hh, mm);
else{
// 换算 非整点
hh = hh - 12 + bool(mm);
while(hh--) cout << "Dang";
}
}