A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.util.Scanner;

public class Test4
{

        /**
         * 第4题:从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
         * 键盘输入6,打印6秒;            
         * 键盘输入60,打印1分;      
         * 键盘输入66,打印1分6秒;     
         * 键盘输入666,打印11分6秒;
         * 键盘输入3601,打印1小时1秒
         *
         * 思路:一天有86400秒,一小时有3600秒,一分钟有60秒。
         *      现假设有433568秒,先求出有多少天--------------------433568/86400=2 则有5天
         *      除去2天还剩下多少小时呢?  433568 - 86400*5=1568秒 ----1568/3600=0  则有0小时
         *      1568秒有多少分钟呢?------------------------------1568/60=26   则有26分钟
         *      除去6分钟还剩多少秒呢?     1568 - 60*26=8秒-----------------------则有8秒                          
         * @param args
         */
        public static void main(String[] args)  
        {
                //定义一个数组(查表法)
                String[] ch = new String[]{"秒", "分", "小时","天"};
               
                //获取键盘输入的数字,并赋值给变量num
                Scanner sc = new Scanner(System.in);
            int num = sc.nextInt();
            
            //定义一个除数divisor、商数quotient
            int divisor = 0, quotient =0;
            for(int i = 3; i>=0; i--)
            {
                    //给除数赋值
                    divisor = (int)Math.pow(60, i);
                   
                    //第一次循环时,除数divisor=86400,用来计算天数
                    if(i==3)
                            divisor = 86400;
                   
                    //得到商数
                    quotient = num/divisor;
                   
                    //商数大于零,则得到了有效的天数或小时数或分钟数,输出这个有效数,并计算剩下的秒数
                    if(quotient>0)
                    {
                            System.out.print(quotient + ch[i]);
                            num = num - divisor*quotient;
                    }
                    //商数<0,继续for循环
                    else
                            continue;                     
            }
        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马