题目
读入非负整数总秒数,按 时:分:秒 格式输出(时分秒均为整数,可不带前导零)。
输入格式:一行输入一个非负整数,表示总秒数。
输出格式:输出格式为 时:分:秒 的时间字符串,末尾换行。
数据范围与约定:0 ≤ 总秒数 ≤ 109。
思路与算法
1. 时间换算数学关系
1 小时 = 3600 秒,1 分钟 = 60 秒。
小时数:h = total / 3600;
分钟数:扣除完整小时后剩下的秒数再求分钟,m = (total % 3600) / 60;
秒数:剩余不足一分钟的秒数,s = total % 60。
2. 运算次序
务必对求余后的剩余量进行二次除法,避免在原 total 上计算导致小时与分钟重叠。
完整程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int total = sc.nextInt();
// 1 小时 = 3600 秒
int h = total / 3600;
// 扣除整小时后,剩余的秒数换算为分钟(每 60 秒为 1 分钟)
int m = (total % 3600) / 60;
// 不足 1 分钟的零头秒数
int s = total % 60;
System.out.println(h + ":" + m + ":" + s);
}
}运行示例
输入:
3661输出:
1:1:1