强训之【查找组成一个偶数最接近的两个素数和二进制插入】

news/2024/11/29 0:34:52/

目录

  • 1.查找组成一个偶数最接近的两个素数
    • 1.1题目
    • 1.2思路
      • 1.2.1 暴力解法
      • 1.2.2 取中判断
    • 1.3代码
      • 1.3.1暴力求解代码
      • 1.3.2 取中判断代码
  • 2.二进制插入
    • 2.1题目
    • 2.2思路
    • 2.3代码
  • 3.选择题

1.查找组成一个偶数最接近的两个素数

1.1题目

链接: link
描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。

数据范围:输入的数据满足 4 \le n \le 1000 \4≤n≤1000
输入描述:
输入一个大于2的偶数

输出描述:
从小到大输出两个素数

示例1 输入: 20 输出: 7 13

示例2 输入: 4 输出: 2 2

1.2思路

1.2.1 暴力解法

暴力求解,定义b1和b2存放差值最小的素数对,min是差值初始值为n,依次判断 i 和 n-i 是否都是素数,如果是就判断差值,注意这里需要使用绝对值,防止i的值比 N-i 大,五个绝对值比min小,就将绝对值赋值给min,另 b1=i; b2=n-i;

1.2.2 取中判断

差值最小的两个素数,一并是在中间部分,所以我们从中间开始遍历,i–,知道i和n-i都是素数的时候,这个时候的i和n-i就是差值最小的。

1.3代码

1.3.1暴力求解代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n=in.nextInt();int b1=0;int b2=0;int min=n;for(int i=2;i<=n;i++){if(isPrime(i)&&isPrime(n-i)){if(Math.abs((n-i)-i)<min){min=Math.abs((n-i)-i);b1=i;b2=n-i;}}}System.out.println(b1);System.out.println(b2);}public static boolean isPrime(int a){for(int i=2;i<a;i++){if(a%i==0){return false;}}return true;}
}

1.3.2 取中判断代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n=in.nextInt();int half=n/2;for(int i=half;i>0;i--) {if (isPrime(i) && isPrime(n - i)) {System.out.println(i);System.out.println(n - i);break;}}}public static boolean isPrime(int a){for(int i=2;i<a;i++){if(a%i==0){return false;}}return true;}
}

2.二进制插入

2.1题目

链接: link
描述
给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。

测试样例:
1024,19,2,6
返回:1100

2.2思路

我们要将19的二进制位10011插入到i-j中,我们可以将m左移j位,让m后面补充上0和n对其,然后我们在让 n|m,就可以了,因为“或”的话,只有有1,就为1
在这里插入图片描述

2.3代码

import java.util.*;public class BinInsert {public int binInsert(int n, int m, int j, int i) {// write code herem=m<<j;return m|n;}
}

3.选择题

以下方法,哪个不是对add方法的重载?(B
public class Test
{
public void add( int x,int y,int z){}
}
A public int add(int x,int y,float z){return 0;}
B public int add(int x,int y,int z){return 0;}
C public void add(int x,int y){}
D 所有选项都不是

重载要求,参数类型不同,数量不同,返回值可以一样也可以不同

  1. 在Java中,关于HashMap类的描述,以下错误的是(B
    A HashMap使用键/值得形式保存数据
    B HashMap 能够保证其中元素的顺序
    C HashMap允许将null用作键
    D HashMap允许将null用作值

HashMap 不能够保证其中元素的顺序,键是唯一的,值可以不同

  1. 在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作(D

  2. A FileInputStream
    B FileReader
    C FileWriter
    D File

  3. 下面程序的运行结果是(B
    String str1 = “hello”;
    String str2 = “he” + new String(“llo”);
    System.err.println(str1 == str2);
    A true
    B false
    C exception
    D 无输出

str2是新建的一个字符串,所以地址不一样

  1. 下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?(B
    A private
    B 无修饰符
    C public
    D protected

private是私有类,只能在本类中使用
procected是可以在本类的子类中使用

  1. java接口的方法修饰符可以为?(忽略内部接口)(D)
    A private
    B protected
    C final
    D abstract

接口的修饰符是 public astract

  1. 下列程序的运行结果(A)
    public void getCustomerInfo() {
    try {
    // do something that may cause an Exception
    } catch (java.io.FileNotFoundException ex) {
    System.out.print(“FileNotFoundException!”);
    } catch (java.io.IOException ex) {
    System.out.print(“IOException!”);
    } catch (java.lang.Exception ex) {
    System.out.print(“Exception!”);
    }
    }

A IOException!
B IOException!Exception!
C FileNotFoundException!IOException!
D FileNotFoundException!IOException!Exception!

抛出异常,一次只能执行一个catch语句,所以只能抛出一个异常

  1. 下列哪种异常是检查型异常,需要在编写程序时声明?(C
    A NullPointerException
    B ClassCastException
    C FileNotFoundException
    D IndexOutOfBoundsException

NullPointerException
ClassCastException
IndexOutOfBoundsException都是运行异常

  1. 选项中哪一行代码可以添加 到题目中而不产生编译错误?(A
    public abstract class MyClass {
    public int constInt = 5;
    //add code here
    public void method() {
    }
    }
    A public abstract void method(int a);
    B constInt = constInt + 5;
    C public int method();
    D public abstract void anotherMethod() {}

  2. 如下代码,执行test()函数后,屏幕打印结果为()
    public class Test2
    {
    public void add(Byte b)
    {
    b = b++;
    }
    public void test()
    {
    Byte a = 127;
    Byte b = 127;
    add(++a);
    System.out.print(a + " ");
    add(b);
    System.out.print(b + “”);
    }
    }
    A 127 127
    B 128 127
    C 129 128
    D 其他选项都不对

a=127,先++再进入到add方法内,此时传过去的值是128 byte范围是-128- 127,因此当数值为128的时候二进制位10000000,第一位就表示符号位,所以值为-0,在二进制中 ,-0 表示-128所以a=-128
b传进入,先赋值,在++,因此b还是等于127
所以最后 a=-128 b=127;


http://www.ppmy.cn/news/48751.html

相关文章

JAVA开发中的六大原则

JAVA开发中的六大原则&#xff0c;也被称为SOLID原则&#xff0c;是软件开发中常用的一组设计原则。这些原则提供了实现高质量、易于维护和可扩展软件的基本策略。 以下是JAVA开发中的六大原则以及它们的详细说明&#xff1a; 单一职责原则&#xff08;Single Responsibility…

通过API接口获取下来的数据需要怎样才能应用

获取到API接口下来的数据之后&#xff0c;为了能够在自己的项目或应用中进行应用开发&#xff0c;需要进行一些必要的数据处理和解析&#xff0c;主要包括以下几个方面&#xff1a; 数据格式解析&#xff1a;数据获取下来通常是以JSON或XML等格式进行返回的&#xff0c;需要对…

怎么压缩图片的体积大小,4款软件分享

怎么压缩图片的体积大小&#xff1f;因为在日常生活和工作中&#xff0c;我们常常会遇到需要压缩图片大小的情况。图片的大小是由像素点数量和每个像素的颜色深度共同决定的&#xff0c;一般来说&#xff0c;像素点数量越多&#xff0c;每个像素的颜色深度越高&#xff0c;图片…

替换算法与写策略(详解)

一.基础认知 1.个人理解 替换算法是用于管理高速缓存&#xff08;Cache&#xff09;中数据的一种策略&#xff0c;当高速缓存已满并需要为新的数据腾出空间时&#xff0c;替换算法会决定哪些数据应该被从高速缓存中替换出去。 2.基础认知 首先&#xff0c;我们需要知道计算…

Forcespro和Casadi的使用心得

一、前言 很久没更新过了&#xff0c;这次更新一下关于forcespro和casadi的使用心得。 二、学习方法 建议先学forcespro&#xff0c;因为它的文档相对来说比较完整&#xff0c;更易学习。至于forcespro的许可证以及安装&#xff0c;我前面的文章里有&#xff0c;其它的查使用…

结构思考力--李忠秋

理解篇–透过结构看世界 结构化思考的底层逻辑 第1讲&#xff1a;透过结构看世界&#xff0c;洞悉事物本质 世界万事万物都是存在其结构的&#xff0c;比如一年四季分为春夏秋冬&#xff0c;一家公司组织结构依次从董事、事业群、事业线及业务线等; 因此我们通过结构去看事物…

日本政府官宣:投资42亿日元,量子计算要上“云”

引《日经新闻》报道&#xff0c;日本政府宣布将投资4.2亿日元&#xff08;约合2.18亿人民币&#xff09;来支持量子计算领域的发展。这笔资金将被用于扩大云计算平台上的共享量子计算能力&#xff0c;为企业提供更加高效的量子计算服务。该计划将由东京大学领导&#xff0c;支持…

找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll

找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll 找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll 找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll 链接&#xff1a;https://pan.baidu.com/s/15O9cRwexHp4nzZj8eYVfnw 提取码&#xff1a;4iyr --来自百度…