黑马程序员技术交流社区
标题:
黑马基础测试题,交流一下有没有更好的实现方法
[打印本页]
作者:
史世锋
时间:
2015-9-6 21:30
标题:
黑马基础测试题,交流一下有没有更好的实现方法
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;
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2