黑马程序员技术交流社区
标题:
求简便算法
[打印本页]
作者:
xiazhixing
时间:
2014-6-10 17:04
标题:
求简便算法
<DIV class=blockcode>
<BLOCKQUOTE>
<P>/*
第3题: 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:</P>
<P>键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒</P>
<P>*/
class Test3
{
public static void main(String[] args)
{
int num;
Scanner sc = new Scanner(System.in);
num=sc.nextInt(); //将读取的内容赋给变量
int hour = num/3600; //定义一个存小时数的变量num1
int min = (num-hour*3600)/60; //定义一个存小时数的变量num1
int sec = num-hour*3600-min*60;
if(hour==0)
{
if(min==0)
System.out.println(num+"表示的时间为"+sec+"秒"); //几秒
else
{
if(sec==0)
System.out.println(num+"表示的时间为"+min+"分");//几分
else
System.out.println(num+"表示的时间为"+min+"分"+sec+"秒");//几分几秒
}
}
else
{
if(min==0)
{
if(sec==0)
System.out.println(num+"表示的时间为"+hour+"小时"); //几小时
else
System.out.println(num+"表示的时间为"+hour+"小时"+sec+"秒"); //几小时几秒
}
else
{
if(sec==0)
System.out.println(num+"表示的时间为"+hour+"小时"+min+"分"); //几小时几分
else
System.out.println(num+"表示的时间为"+hour+"小时"+min+"分"+sec+"秒"); //几小时几分几秒
}
}
}
}
</P>
复制代码
解这道题都快晕了,大家有更好的解法吗?
作者:
夏日蓝雪
时间:
2014-6-10 18:34
在输出结果上,没必要考虑的那么复杂,你可以这样想有 天/小时/分钟/秒 就输出,没有就不输出,代码如下:
import java.util.Scanner;
class Practise
{
public static void main(String[] args)
{
int num;
Scanner sc = new Scanner(System.in);
num=sc.nextInt();
int day=num/3600/24;//天
int hour = (num-day*3600*24)/3600; // 小时
int min = (num-hour*3600)/60; //分
int sec = num-hour*3600-min*60;//秒
System.out.print(num+"表示的时间为:");
if(day!=0)
System.out.print(day+"天");
if(hour!=0)
System.out.print(hour+"时");
if(min!=0)
System.out.print(min+"分");
if(sec!=0)
System.out.print(sec+"秒");
}
}
作者:
xiazhixing
时间:
2014-6-10 19:03
夏日蓝雪 发表于 2014-6-10 18:34
在输出结果上,没必要考虑的那么复杂,你可以这样想有 天/小时/分钟/秒 就输出,没有就不输出,代码如下:
...
确实简便多了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2