PAT Basic Level 1026 程序运行时间 (15 分)

本文探讨了如何将两个时间戳转换为时、分、秒格式的计时器显示,通过对比两种不同的C++代码实现,一种是个人尝试的解决方案,另一种是简洁高效的AC代码。通过对两种代码的分析,我们可以理解到如何正确处理时间进位和简化代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:

https://pintia.cn/problem-sets/994805260223102976/problems/994805295203598336

本人代码(求大佬订正):

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <math.h>
using namespace std;


int main() {
	long long C1, C2, minu;
	cin >> C1 >> C2;
	minu = (C2 - C1) / 100;
	long long remain = (C2 - C1) % 100;
	long long wei = remain / 10;
	if ((remain + minu != (C2 - C1))&&wei>=5)//判断是否进位
		minu += 1;
	long long  hour = minu / 3600;
	long long minute = minu % 3600 / 60;
	long long second = minu % 60;
	cout << hour << ":" << minute << ":" << second;
}

AC代码(感觉思想特简单):

#include <iostream>
#include <cstdio>

using namespace std;

int main(){
    int c1,c2;
    scanf("%d%d",&c1,&c2);
    int ans=c2-c1;
    if(ans%100>=50){
        ans=ans/100+1;
    }
    else{
        ans=ans/100;
    }
    printf("%02d:%02d:%02d\n",ans/3600,ans%3600/60,ans%60);
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值