蓝桥杯--算法提高 计算时间(java)

资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
  给定一个t,将t秒转化为HH:MM:SS的形式,表示HH小时MM分钟SS秒。HH,MM,SS均是两位数,如果小于10用0补到两位。
输入格式
  第一行一个数T(1<=T<=100,000),表示数据组数。后面每组数据读入一个数t,0<=t<246060。
输出格式
  每组数据一行,HH:MM:SS。
样例输入
2
0
86399
样例输出
00:00:00
23:59:59
—————————————————————————————————————————————————
本来是挺简单的一道题,提交好几次都是超时,一看测评点就一个,86400组数据,因为有 “小于10用0补到两位” 的限制,所以必须用格式化输出,而BufferedWriter做不到,所以用PrintWriter

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class Main {
	static int T;
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter bw = new PrintWriter(new OutputStreamWriter(System.out));
		T = Integer.parseInt(br.readLine());
		while(T-- > 0) {
			int t = Integer.parseInt(br.readLine());
			int h = t / 3600;
			int m = t % 3600 / 60;
			int s = t % 60;
			bw.printf("%02d:%02d:%02d\n", h, m, s);
		}
		bw.flush();//必须在循环外
	}
}
发布了177 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/QinLaoDeMaChu/article/details/105668147