【Java刷题进阶】基础进阶篇

简介: 【Java刷题进阶】基础进阶篇

第一题:回文数判断


题目描述


请补全预设代码中判断回文数的方法,若输入的五位数字是回文是则返回true,否则返回false。回文数即个位与万位相同,十位与千位相同的数字。如:12321、89898

输入描述:

控制台输入的五位数

输出描述:

true/false

示例


输入: 12321

输出: true

示例2

输入: 18182

输出: false

题解


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        Main main = new Main();
        int number = console.nextInt();
        System.out.println(main.palindromeNumber(number));
    }
    public Boolean palindromeNumber(int number) {
        StringBuilder str=new StringBuilder();
        str.append(number);
        int left=0;
        int right=str.length()-1;
        while(left<right){
            if(str.charAt(left)!=str.charAt(right)){
                return false;
            }else{
                left++;
                right--;
            }
        }
        return true;
    }
}

第二题:根据周长求面积


题目描述


已知:

  1. 图形类Shape,该类中定义了图形的周长属性,以及返回周长的方法。
  2. Area接口,该接口中定义了返回面积的方法getArea()。


要求:

  1. 定义圆形类Circle,使其继承于Shape,并实现Area接口。
  2. 定义方形类Square,使其继承于Shape,并实现Area接口。


注意:

圆周率要使用Math类中的常量。

输入描述:

周长

输出描述:

面积(计算时请使用Math类中的常量,面积为double类型,保留三位小数,四舍五入部分预设代码已经完成)

示例


输入: 4

输出:1.273

1.000

题解


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextDouble()) {
            double s = scanner.nextDouble();
            // Circle和Square是需要你定义的类
            System.out.println(String.format("%.3f",new Circle(s).getArea()));
            System.out.println(String.format("%.3f", new Square(s).getArea()));
        }
    }
}
class Shape {
    private double s; // 周长
    public Shape(double s) {
        this.s = s;
    }
    public double getS() {
        return s;
    }
}
interface Area {
    double getArea(); // 面积
}
// 圆形
class Circle extends Shape implements Area {
    //write your code here......
 public Circle(double s) {
        super(s);
    }
    @Override
    public double getArea() {
        return Math.PI * Math.pow((getS() / (2 * Math.PI)), 2);
    }
}
// 方形
class Square extends Shape implements Area {
    //write your code here......
  public Square(double s) {
        super(s);
    }
    @Override
    public double getArea() {
        return Math.pow((getS() / 4), 2);
    }
}

第三题:冒泡排序


题目描述


有一个长度为7的无序数组,按照从小到大的顺序排序后输出。

输入描述:

数组中的数据

输出描述:

数组中数据排序后输出

示例


输入: 13 11 9 7 5 3 1

输出: 1 3 5 7 9 11 13

题解


import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
         int[] arr = new int[7];
        for (int i = 0; i < arr.length; i++) {
                    arr[i] = scanner.nextInt();
                }
        scanner.close();
        //write your code here......
for (int i = 0; i < arr.length - 1; i++) {
    for (int j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
            int temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}
        for (int k = 0;k < arr.length; k++) {
                    System.out.print(arr[k]+" ");
                 }
        }
}
目录
相关文章
|
3月前
|
算法 Java 调度
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
60 0
|
2月前
|
Java Perl
Java进阶之正则表达式
【7月更文挑战第17天】正则表达式(RegEx)是一种模式匹配工具,用于在字符串中执行搜索、替换等操作。它由普通字符和特殊元字符组成,后者定义匹配规则。
21 4
|
2月前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
21 4
|
2月前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
21 3
|
2月前
|
设计模式 Java
Java进阶之代理
【7月更文挑战第16天】Java动态代理通过`java.lang.reflect.Proxy`和`InvocationHandler`实现,无需编译期定义代理类。与静态代理相比,它更灵活,代码更简洁,适用于方法数量变化或未知接口代理。
20 2
|
2月前
|
Java 编译器 API
Java进阶之标准注解
【7月更文挑战第15天】Java标准注解包括标记注解(如@Deprecated)、@Override(检查方法重写)、@SuppressWarnings(抑制警告)。多值注解如@RequestMapping在Spring中用于HTTP请求映射。元注解如@Retention控制注解保留策略,@Target指定应用位置。Java8引入类型注解(@FunctionalInterface、@SafeVarargs)和重复注解(@Repeatable)。自定义注解可通过反射读取,如示例中的MyMarkerAnnotation等。
19 2
|
2月前
|
Java
Java进阶之内部类
【7月更文挑战第13天】Java内部类增进代码组织与封装,允许直接访问外部类成员,包括私有成员。主要有四种类型:成员、静态、局部和匿名内部类。匿名内部类常用于一次性实现接口或扩展类。内部类可隐藏实现细节,减少命名冲突,并在特定上下文中定义辅助类。示例展示了静态和非静态内部类如何在Shape类中封装Circle和Rectangle。使用内部类能提升代码可读性,但可能增加复杂性。
31 6
|
2月前
|
Java 编译器 API
Java进阶之标准注解
Java进阶之标准注解
24 1
|
2月前
|
安全 Java
Java进阶之枚举
【7月更文挑战第11天】Java枚举是Java 5引入的特性,用于定义固定常量集合,如星期。枚举是继承自`java.lang.Enum`的特殊类,编译后成为final类,每个枚举值是静态final实例。定义枚举用`enum`关键字,如`public enum Weekday {MONDAY, TUESDAY, ...}`。枚举可包含方法和变量,能实现接口但不能继承其他类。例如,`Weekday`枚举可实现`Describe`接口,提供`describe()`方法。在实际应用中,枚举常用于表示如响应状态等固定选项,便于类型安全和代码阅读。
31 8
|
2月前
|
IDE Java 测试技术
Java进阶之反射
【7月更文挑战第14天】Java反射机制允许在运行时动态获取类信息、创建对象及调用其方法。它基于`Class`类,让我们能访问类的属性、方法、构造器。例如,通过`Class.forName()`加载类,`Class.newInstance()`创建对象,`Method.invoke()`执行方法。反射广泛应用于动态代理、单元测试、序列化及框架中,提供灵活性但牺牲了性能,且可破坏封装性。IDE的代码补全也是反射的应用之一。在使用时需谨慎,避免对私有成员的不当访问。
28 1