阶段测试错题

1、题目:给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。

输入值小于1000。

如,输入为10,程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))

思路:首先要找出该正整数的质数,再遍历该正整数的前半部分的质数,在后半部分找到相匹配的质数,结果加一。

质数的特点:

大于1,只能被1和本身整除的,再没有其他因数的数

package test;

import java.util.Scanner;

public class test01 {
    public static void main(String[] args) {
        test01 t = new test01();
        System.out.println("请输入一个正整数:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        t.method(num);
    }

    //质数:大于1,只能被1和本身整除的,再没有其他因数的数
    public boolean getNum(int num){
        //num <=3时,质数有2,3
        if(num <= 3){
           return num > 1;
        }
        //当num > 3,质数无法被比自己小的整数整除
        for(int i = 2; i<num; i++){
            if(num % i == 0){
                return false;
            }
        }
        return true;
    }
//遍历该正整数前半部分的质数,找到后半部分相匹配的质数。找到,则count+1;
    public void method(int num){
        int count = 0;

        for(int i = 1; i <= num / 2; i++){
            if(getNum(i)){
                if(getNum(num-i)){
                    count++;
                }
            }

        }
        System.out.println(count);
    }
}

2、简述final 和 finally 的区别(加一个finalize)

总体区别

final       用于申明属性,方法和类,表示属性不可变,方法不可以被覆盖(重写),类不可以被继承。
finally     是异常处理语句结构中,表示总是执行的部分。  
finallize   表示是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象的方法。允许回收此前未回收的内存垃圾。所有object都继承了  finalize()方法

关于final的几个注意事项:

a、final变量必须在声明的时候初始化或是在构造函数中初始化;
b、接口中声明的所有变量都是final的;
c、final,finally,finalize的区别。final表示不可变,finally 表示必须执行的语句,finalize表示垃圾回收时执行的代码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值