java期末考试复习1_2019_12月份卷子,课后原码

Java复习2019_12

problem1

反思

  1. Stack是用add()
  2. ArrayList也是用add()。
  3. 有两种写比较的方法,我还是喜欢用下面这一种
  4. 时间不够了,贴个其他的cmp的写法,以后学习吧传送门
  5. 记得补充第二个comparator的写法
  6. 记得补充 蓝不大的写法

AC(ArrayList && Comparator)

package test.paper12;
import java.util.*;
import java.util.Comparator;
class ProblemComparator implements Comparator<Integer>{
    
    
    @Override
    public int compare(Integer p1, Integer p2){
    
    
        return -(Integer.compare(p1, p2));//加负号是为了降序。
    }
}
public class problem1 {
    
    
    public static void main(String[] args){
    
    
        Scanner cin = new Scanner(System.in);
        ArrayList<Integer> arr = new ArrayList<Integer>();
        int n;
        n = cin.nextInt();
        for(int i = 2; i*i <= n; i ++ ){
    
    
            if(n%i==0){
    
    
                while(n%i==0){
    
    
                    arr.add(i);//这里用add函数
                    n /= i;
                }
            }
        }
        if(n>1)arr.add(n);
        Collections.sort(arr, new ProblemComparator());
        System.out.println();
        for(int x: arr){
    
    
            System.out.print(x+ " ");
        }
    }
}

AC(再加一个匿名内部类的写法)

package test.paper12;
import java.util.*;
import java.util.Comparator;
public class problem1_3 {
    
    
    public static void main(String[] args){
    
    
        Scanner cin = new Scanner(System.in);
        ArrayList<Integer> arr = new ArrayList<Integer>();
        int n;
        n = cin.nextInt();
        for(int i = 2; i*i <= n; i ++ ){
    
    
            if(n%i==0){
    
    
                while(n%i==0){
    
    
                    arr.add(i);//这里用add函数
                    n /= i;
                }
            }
        }
        if(n>1)arr.add(n);
        Collections.sort(arr, new Comparator<Integer>(){
    
    
            @Override
            public int compare(Integer p1, Integer p2){
    
    
                return -(Integer.compare(p1,p2));
            }
        });
        System.out.println();
        for(int x: arr){
    
    
            System.out.print(x+ " ");
        }
    }
}

AC (Stack)

package test.paper12;
import java.util.Stack;
import java.util.Scanner;
public class problem1_2 {
    
    
    public static void main(String[] args){
    
    
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        Stack<Integer> st = new Stack<Integer>();
        for(int i = 2; i <= n/i; i ++ ){
    
    
            if(n%i == 0){
    
    
                while(n%i == 0){
    
    
                    st.add(i);//这里也是用add
                    n /= i;
                }
            }
        }
        if(n>1)st.add(n);
        while(!st.empty()){
    
    
            System.out.print(st.pop() +" ");
        }
    }
}

problem2

package test.prog02;
import java.io.Serializable;
//答案的写法是 java.io.Serializable
public class Book implements Serializable{
    
    
    private String title;
    private boolean published;
    public Book(){
    
    }
    public Book(String title, boolean published){
    
    
        this.title = title;
        this.published = published;
    }
    @Override
    public boolean equals(Object x){
    
    
        if(this==x)return true;
        if(x==null)return false;
        if(getClass()!=x.getClass())return false;
        Book xx = (Book)x;
        if(published != xx.published) return false;
        if(title == null){
    
    
            if(xx.title!=null)return false;
        }else if(!title.equals(xx.title))return false;
        return true;
    }
    public void setTitle(String title){
    
    
        this.title = title;
    }
    public String getTitle(){
    
    
        return this.title;
    }
    public boolean isPublished(){
    
    
        return published;
    }
    public void setPublished(){
    
    
        this.published = published;
    }
    //public static void main(String[] args){
    
    
      //  String s1 = null, s2 = null;
       // System.out.println(s1.equals(s2));
    //}
}

猜你喜欢

转载自blog.csdn.net/qq_45377553/article/details/112759164
今日推荐