• 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"; 
	}
}