黑马程序员技术交流社区

标题: 求简便算法 [打印本页]

作者: xiazhixing    时间: 2014-6-10 17:04
标题: 求简便算法

  1. <DIV class=blockcode>
  2. <BLOCKQUOTE>
  3. <P>/*
  4. 第3题: 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:</P>
  5. <P>键盘输入6,打印6秒;
  6. 键盘输入60,打印1分;
  7. 键盘输入66,打印1分6秒;
  8. 键盘输入666,打印11分6秒;
  9. 键盘输入3601,打印1小时1秒</P>
  10. <P>*/

  11. class Test3
  12. {
  13. public static void main(String[] args)
  14. {
  15. int num;
  16. Scanner sc = new Scanner(System.in);
  17. num=sc.nextInt(); //将读取的内容赋给变量


  18. int hour = num/3600; //定义一个存小时数的变量num1
  19. int min = (num-hour*3600)/60; //定义一个存小时数的变量num1
  20. int sec = num-hour*3600-min*60;

  21. if(hour==0)
  22. {
  23. if(min==0)
  24. System.out.println(num+"表示的时间为"+sec+"秒"); //几秒
  25. else
  26. {
  27. if(sec==0)
  28. System.out.println(num+"表示的时间为"+min+"分");//几分
  29. else
  30. System.out.println(num+"表示的时间为"+min+"分"+sec+"秒");//几分几秒
  31. }

  32. }
  33. else
  34. {
  35. if(min==0)
  36. {
  37. if(sec==0)
  38. System.out.println(num+"表示的时间为"+hour+"小时"); //几小时
  39. else
  40. System.out.println(num+"表示的时间为"+hour+"小时"+sec+"秒"); //几小时几秒
  41. }
  42. else
  43. {
  44. if(sec==0)
  45. System.out.println(num+"表示的时间为"+hour+"小时"+min+"分"); //几小时几分
  46. else
  47. System.out.println(num+"表示的时间为"+hour+"小时"+min+"分"+sec+"秒"); //几小时几分几秒
  48. }
  49. }
  50. }
  51. }
  52. </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