题目

读入非负整数总秒数,按 时:分:秒 格式输出(时分秒均为整数,可不带前导零)。

输入格式:一行输入一个非负整数,表示总秒数。

输出格式:输出格式为 时:分:秒 的时间字符串,末尾换行。

数据范围与约定: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