P5707 【深基2.例12】上学迟到
1.题目介绍
2.题解
这里只有两个稍微注意的点
2.1 s % v != 0(向上取整)
这里的话,若是结果不为整数,我们必须向上取整,必须保证空余时间永远大于所需时间!
2.2 ceil向上取整函数的使用
当使用 ceil(s / v) 时,应该确保至少有一个操作数是浮点数,否则整数除法会导致结果被截断为整数。因此,你可以将其中一个操作数转换为浮点数,以确保得到正确的结果,也就是ceil((double)s / v) 。
如果运算中有常量的话处理就比较简单ceil(s/3.0),在后面加一个.0就可以了!
2.3 不足两位补零
这里我使用了setfill表示补零,setw限制必须为2位(如果是C中的printf函数就十分加简单了,直接printf("%02d:%02d",hour,min);)
std::cout << std::setfill('0') << std::setw(2) << hour << ":" << std::setw(2) << min << std::endl;
//
// Created by trmbh on 2023-10-20.
//
#include <iostream>
#include <iomanip>
#include <cmath>
int main(){
int s, v;
std::cin >> s >> v;
int spend;
spend = ceil((double)s / v) + 10; //向上取整
int hour , min;
if (spend < 8 * 60) {
spend = 8*60 - spend;
}
else if (spend == 8 * 60) {std::cout << '00:00'; return 0;}
else {
spend = (24+8)*60 - spend;
}
hour = spend / 60;
min = spend % 60;
std::cout << std::setfill('0') << std::setw(2) << hour << ":" << std::setw(2) << min << std::endl;
//这里使用printf("%02d:%02d",hour,min);也可以的
}
分类:
洛谷
, 数据结构与算法 / 顺序结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了