题目内容:
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,则没有百位部分;如果分小于10分,需要保留十位上的0。
输出格式:
一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
输入样例:
903
输出样例:
103
时间限制:500ms内存限制:32000kb
#include <stdio.h>
int main(){
int number;
scanf("%d",&number);
int a = number/1000;
int b = (number - a*1000)/100;
int c = (number - a*1000-b*100)/10;
int d = (number - a*1000-b*100-c*10);
int e=0,f=0;
//4位数
if(number >= 800){
e = a*10+b-8;
if(e == 0){
if(c == 0)
printf("%d",d);
}
else
printf("%d%d%d",e,c,d);
}
else{
e = a*10+b+16;
printf("%d%d%d",e,c,d);
}
return 0;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int number = 0,f =0;
Scanner in = new Scanner(System.in);
number = in.nextInt();
int a = number/1000;
int b = (number - a*1000)/100;
int c = (number - a*1000-b*100)/10;
int d = (number - a*1000-b*100-c*10);
int e=0;
if(number >= 800){
e = a*10+b-8;
if(e == 0){
if(c == 0)
System.out.print(d);
}
else{
System.out.print(e);
System.out.print(c);
System.out.print(d);
}
}
else{
e = a*10+b+16;
System.out.print(e);
System.out.print(c);
System.out.print(d);
}
}
}