几点了

几点了

时间: 1ms        内存:128M

描述:

现有一个Time类可以用来记录时间,请输出Time记录的时间加上s秒后的时间。

只需提交补充部分。

请用C++方式提交

#include <iostream>
using namespace std;
class Time
{
public:
    Time(){};
    Time(int ,int ,int);
    void display();
    Time operator+(int s);
private:
    int hour;
    int minute;
    int second;
};
Time::Time(int h,int m,int s):hour(h),minute(m),second(s){};
void Time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
Time Time::operator+(int s)
{
    /*
    补充部分
    */
}
int main()
{
    int hour,minute,second;
    int sec;
    cin>>hour>>minute>>second;
    cin>>sec;
    Time t(hour,minute,second);
    t=t+sec;
    t.display();
    return 0;
}

输入:

第一行:小时(hour,0~23),分钟(minute,0~59),秒(second,0~59),以空格隔开
第二行:要加的秒数,sec(>=0)

输出:

加完后的时间,格式为:
hour:minute:second

示例输入:

23 59 59
2

示例输出:

0:0:1

提示:

参考答案(内存最优[1500]):


#include <iostream>
using namespace std;
class Time
{
public:
    Time(){};
    Time(int ,int ,int);
    void display();
    Time operator+(int s);
private:
    int hour;
    int minute;
    int second;
};
Time::Time(int h,int m,int s):hour(h),minute(m),second(s){};
void Time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
Time Time::operator+(int s)
{    Time t;
    t.second=second+s;
    t.minute=minute+t.second/60;
    t.second%=60;
    t.hour=hour+t.minute/60;
    t.minute%=60;
    t.hour/=60;
    return t;

}
int main()
{
    int hour,minute,second;
    int sec;
    cin>>hour>>minute>>second;
    cin>>sec;
    Time t(hour,minute,second);
    t=t+sec;
    t.display();
    return 0;
}

参考答案(时间最优[0]):


#include <iostream>
using namespace std;
class Time
{
public:
    Time(){};
    Time(int ,int ,int);
    void display();
    Time operator+(int s);
private:
    int hour;
    int minute;
    int second;
};
Time::Time(int h,int m,int s):hour(h),minute(m),second(s){};
void Time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
Time Time::operator+(int s)
{    Time t;
    t.second=second+s;
    t.minute=minute+t.second/60;
    t.second%=60;
    t.hour=hour+t.minute/60;
    t.minute%=60;
    t.hour/=60;
    return t;

}
int main()
{
    int hour,minute,second;
    int sec;
    cin>>hour>>minute>>second;
    cin>>sec;
    Time t(hour,minute,second);
    t=t+sec;
    t.display();
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注