一、题目
二、解题思路
方法一:
- 获取h和m:scanf,cin,输入字符串(前两个字符表示h,后两个字符表示m);
- 当在敲钟期时(h>12 || (h==12 && m!=0)),输出相应数量的 Dang ,否则输出 Only hh:mm. Too early to Dang. ;
- 若处于敲钟期并且 m>0 ,需要再输出一个 Dang 。
方法二:
- 同方法一;
- 当不在敲钟期时(h>=0 && h<11 || (h==12 && m==0)),输出 Only hh:mm. Too early to Dang. ,否则输出相应数量的 Dang ;
- 同方法一。
三、代码
方法一(scanf):
#include<iostream>
using namespace std;
int main()
{
int h,m;
scanf("%d:%d",&h,&m);
if(h>12 || (h==12 && m!=0))
{
for(int i=0;i<h-12;i++)
{
cout<<"Dang";
}
if(m>0)
{
cout<<"Dang";
}
}
else
{
printf("Only %02d:%02d. Too early to Dang.",h,m);
}
}
方法一(cin):
char t=':';
cin>>h>>t>>m;
方法一(输入字符串):
string time;
cin>>time;
int h=(int(time[0])-'0')*10+int(time[1])-'0';
int m=(int(time[3])-'0')*10+int(time[4])-'0';
方法二:
#include<iostream>
using namespace std;
int main()
{
int h,m;
scanf("%d:%d",&h,&m);
if(h>=0 && h<11 || (h==12 && m==0))
{
printf("Only %02d:%02d. Too early to Dang.",h,m);
}
else
{
for(int i=0;i<h-12;i++)
{
cout<<"Dang";
}
if(m>0)
{
cout<<"Dang";
}
}
}
四、总结
- 确定敲钟期的判断条件(或者非敲钟期的判断条件)。
- 若处于敲钟期并且 m>0 ,需要再输出一个 Dang 。