关于时间换算的JAVA题目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于时间换算的JAVA题目相关的知识,希望对你有一定的参考价值。

题目内容:UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。提醒:要小心跨日的换算。输入格式:一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。输出格式:一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。输入样例:933输出样例:133时间限制:500ms内存限制:32000kb下图是我的答案。但是输入803应该输出03但是我总是输出3,不知道该怎么改。还有我提交作业显示的错误是什么?

因为题目要求是输入0到2359之间的数 并没有指出十位和个位组合数一定是分钟小于60的形式 所以要多考虑 代 码如下
import java.util.Scanner;
class A
public static void main(String args[])
Scanner sd=new Scanner(System.in);
int BJT;
BJT=sd.nextInt();
int y=BJT-(int)(BJT/100)*100;
if(BJT>=0&&BJT<=60)
System.out.println(BJT+1600);
else if(BJT<=99)
System.out.println("输入有误");
if(BJT>99&&BJT<800)
if(y>=0&&y<=60)
System.out.println(BJT+1600);
else System.out.println("输入有误");

else if(BJT>=800&&BJT<1800)
if(y>=0&&y<=60)
System.out.println("0"+(BJT-800));
else System.out.println("输入有误");
else if(BJT>=1800&&BJT<=2359)
if(y>=0&&y<=60)
System.out.println(BJT-800);
else System.out.println("输入有误");


参考技术A

main是java中的keyword,把

public class main

改成

public class Main

你需要去看下java文件的命名规则

参考技术B
System.out.println((h*100+m));
参考技术C 题目要求0点输出00,你写的只能输出0

华为OD机试用java实现 -货币单位换算

最近更新的博客

本篇题解:货币单位换算

题目

记账本上记录了若干条多国货币金额,需要转换成人民币分(fen),汇总后输出。
每行记录一条金额,金额带有货币单位,格式为数字+单位,可能是单独元,或者单独分,或者元与分的组合。
要求将这些货币全部换算成人民币分(fen)后进行汇总,汇总结果仅保留整数,小数部分舍弃。
元和分的换算关系都是1:

以上是关于关于时间换算的JAVA题目的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试真题 Java 实现货币单位换算2022.11 Q4 新题

关于MAC地址的换算

时间换算

华为OD机试用java实现 -货币单位换算

关于计算机或编程中-时间及各单位换算的的方法记录

时间换算