Java基础知识练习

1 日期计算

题目描述:
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们
之间的天数为两天
输入:
有多组数据,每组数据有两行,分别表示两个日期,形式为 YYYYMMDD
输出:
每组数据输出一行,即日期差值
样例输入:
20110412
20110422
样例输出:
11

 1 package Test;
 2 //不用data类了,已经被更新为更好用的LocalDate类,适用于jdk8以上的版本
 3 import java.time.LocalDate;
 4 import java.time.format.DateTimeFormatter;
 5 import java.time.temporal.ChronoUnit;
 6 import java.util.Scanner;
 7 
 8 public class Main{
 9     public static void main(String[] args) {
10         Scanner sc=new Scanner(System.in);
11         while(sc.hasNext()){
12             //设定输入的字符串时间格式,并把字符串转换为时间
13             LocalDate ld1=LocalDate.parse(sc.next(),DateTimeFormatter.ofPattern("yyyyMMdd"));
14             LocalDate ld2=LocalDate.parse(sc.next(),DateTimeFormatter.ofPattern("yyyyMMdd"));
15             System.out.println(ld1.until(ld2, ChronoUnit.DAYS)+1);//计算二者相差时间
16         }
17     }
18 }
View Code

 2 进制转换

题目描述:

    求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
    不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

输入:

    输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。

    数据可能存在包含前导零的情况。

输出:

    可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。

样例输入:
15 Aab3 7
样例输出:
210306
 1 package Test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Main{
 6     public static void main(String[] args) {
 7         Scanner sc=new Scanner(System.in);
 8         while(sc.hasNext()){
 9             int a=sc.nextInt();
10             String str=sc.next();//输入的数用字符串存储
11             int b=sc.nextInt();
12             int res=Integer.parseInt(str,a);//把输入的字符串换 
13  为整数
14             System.out.println(Integer.toString(res,b).toUpperCase());//把里面的字母转换为大写,输出格式要求的
15         }
16     }
17 }
View Code


 

2 又一版A+B

输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。

输入:
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
 当m为0时输入结束。
输出:
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。

样例输入:

8 1300 48
2 1 7
0
样例输出:

2504
1000

 1 package Test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Main{
 6     public static void main(String[] args) {
 7         Scanner sc=new Scanner(System.in);
 8         while(sc.hasNext()){
 9             int m=sc.nextInt();
10             if(m==0) break; //直接跳出,程序结束了
11             long a=sc.nextInt();
12             long b=sc.nextInt();    
13             // Long是long的封装,是一个对象类型而long是基本的数据类型
14             System.out.println(Long.toString(a+b,m));//这里进制转换就没有考虑大小写,根据不同题目要求而定
15         }
16     }
17 }
View Code

猜你喜欢

转载自www.cnblogs.com/youngao/p/9746004.html