7-2 jmu-Java-02基本语法-01-综合小测验 (10分) JAVA

运行程序后可以输入4个选项,分别为:fib,sort,search,getBirthDate

fib:根据输入n,打印斐波那契数列。比如输入:3,输出:1 1 2

sort:输入一串数字,然后进行排序并输出,注意数组元素输出的格式为使用[ ]包括。提示:可直接使用函数Arrays相关方法处理输出。

search:如果找到返回所找到的位置,如果没找到,返回-1。提示:可以先对数组排序,然后使用Arrays相关函数进行查找。

getBirthDate:输入n个身份证,然后把输入的n个身份号的年月日抽取出来,按年-月-日格式输出。

当输入不是这几个字符串(fib,sort,search,getBirthDate)的时候,显示exit并退出程序。

注意:在处理输入的时候,尽量全部使用Scanner的nextLine()方法接收输入,不要将nextLine()与其它next方法混用,否则可能会出现行尾回车换行未处理影响下次输入的情况。

参考:jdk文档的Arrays,String

输入格式:

fib
3
sort
-1 10 3 2 5
search
-1
search
0
getBirthDate
1
330226196605054190
e

输出格式:

1 1 2
[-1, 2, 3, 5, 10]
0
-1
1966-05-05
exit

实现:


import java.util.Arrays;
import java.util.Scanner;

public class Main {
    //fib递归
    public static int fib(int num) {
        if(num == 1 || num == 2) {
            return 1;
        }else {
            return fib(num - 2) + fib(num - 1);
        }
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int[] array = null;
        while (true){
            String num = scan.nextLine();
            switch (num){
                case "fib":
                    int n = Integer.valueOf(scan.nextLine());
                    int a=1,b=1,c=0;
                    for(int i = 1;i <= n;i++) {
                        if (i == n){
                            System.out.println(fib(i));
                            break;
                        }
                        System.out.print(fib(i) + " ");
                    }
                    break;
                case "sort":
                    array = Arrays.asList(scan.nextLine().split(" ")).stream().mapToInt(Integer::parseInt).toArray();
                    Arrays.sort(array);
                    System.out.println(Arrays.toString(array));
                    break;
                case "search":
                    int sn = Integer.valueOf(scan.nextLine());
                    if (Arrays.binarySearch(array,sn)<0){
                        System.out.println(-1);
                        break;
                    }
                    System.out.println(Arrays.binarySearch(array,sn));
                    break;
                case "getBirthDate":
                    int n1 = Integer.valueOf(scan.nextLine());
                    while (n1>0){
                        String s = scan.nextLine();
                        System.out.println(s.substring(6,10) + "-" + s.substring(10,12) + "-" +s.substring(12,14));
                        n1--;
                    }
                    break;
                default:
                    System.out.println("exit");
                    System.exit(0);
                    break;
            }
        }

    }
}


你可能感兴趣的:(PTA,java)