黑马程序员技术交流社区

标题: 没有思路的问题求解答 [打印本页]

作者: 由然自美    时间: 2013-12-28 21:08
标题: 没有思路的问题求解答
本帖最后由 由然自美 于 2013-12-29 20:34 编辑

从键盘接受一个数字,打印该数字表示的时间,最大单位到天
例如:
键盘输入6,打印6秒
键盘输入60,打印1分
键盘输入66,打印1分6秒
键盘输入666,打印11分6秒
键盘输入3601,打印1小时1秒
键盘输入86440,打印1天40秒


作者: 小骗子    时间: 2013-12-28 21:58
接受一个数字 num
这个数字 <60 秒的范围   
              <60*60  分的范围    num/60 --分   num%60 --秒
               <60*60*24   小时的范围
               .....
              如此
作者: 于磊    时间: 2013-12-28 22:01

本题目首先要明确天、时、分、秒之间的关系,
天 = 小时数/24,若小时数小于24则直接输出,等于或大于则取余,
时 = 分钟数/60,若分钟数小于60则直接输出,等于或大于则取余,
分 = 秒数/60,若秒数小于60则直接输出,等于或大于则取余,
秒数若不满60则可直接输出,等于或者大于60则取余。         

作者: 于磊    时间: 2013-12-28 22:02
public class Consult{
        public static void main(String args[]) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入秒数:");
                int x = sc.nextInt();
                //分别定义初始化变量天、时、分、秒。
                int t = 0, h = 0, f = 0, m = 0;
                //if循环并判断时分秒。
                if (x >= 60) {
                        f = x / 60;
                        m = x % 60;
                        if (f >= 60) {
                                h = f / 60;
                                f = f % 60;
                                if (h >= 24) {
                                        t = h / 24;
                                        h = h % 24;
                                }
                        }
                } else {
                        //若输入秒数不足60,则直接输出
                        m = x;
                }
                //只有不为0的数据,才可以输出“天、小时、分、秒”这些汉字。
                if (t != 0)
                        System.out.print(t + "天");
                if (h != 0)
                        System.out.print(h + "小时");
                if (f != 0)
                        System.out.print(f + "分");
                if (m != 0)
                        System.out.print(m + "秒");

        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2