牛客网—Java练习题

PAT乙级Basic Level真题

  • 1. 1001 A+B和C (15)
    • 1.1 题目
    • 1.2 题目解析
    • 1.3 程序
  • 2. 数字分类 (20)
    • 2.1 题目
    • 2.2 题目解析
    • 2.3 程序
  • 3. 数素数 (20)
    • 3.1 题目
    • 3.2 题目解读
    • 3.3 程序

为了记录日常的Java学习,我专门开了这个帖子,记下自己的刷题之路。此帖子的题目来源于牛客网,详见。

1. 1001 A+B和C (15)

1.1 题目

给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。

牛客网—Java练习题_第1张图片
可点击此处查看原题目

1.2 题目解析

这个题目需要注意的大概有一下几点:

  1. 首先,应了解二维数组的创建规则,学会用二维数组存储输入的测试测试用例;
  2. 其次,怎么从键盘读取输入数据,正确使用Scanner类也是考察重点;
  3. 最后,注意整数的范围,不能使用INT型表示这些整数,可用double、long型。

1.3 程序

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int numtest=sc.nextInt();
        Long [][]testdata=new Long[numtest][3];
            for (int j=0;jtestdata[i][2])
                System.out.println("Case #"+(i+1)+": true");
            else
                System.out.println("Case #"+(i+1)+": false");
        }
    }
}

2. 数字分类 (20)

2.1 题目

给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:

A1 = 能被5整除的数字中所有偶数的和;
A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…;
A3 = 被5除后余2的数字的个数;
A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
A5 = 被5除后余4的数字中最大数字。
牛客网—Java练习题_第2张图片
点击此处查看原题目

2.2 题目解析

这个题目需要注意的大概有一下几点:

  1. 首先,应清楚什么时候应该输出N;
  2. 其次,一定要注意最后一个输出后面不带空格;
  3. 最后,注一定要注意怎么实现除法保留一位小数,而且要四舍五入的保留小数,这个地方很容易入坑。

2.3 程序

import java.util.Scanner;


public class Main{
    public static void main (String[] args){
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int[] test=new int[N];
        int test1=0;
        int j=2;
        int test2=0;
        int test3=0;
        int test4=0;
        int k=0;
        int test5=0;
        for(int i=0;i

3. 数素数 (20)

3.1 题目

  • 题目描述
    令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。

  • 输入描述
    输入在一行中给出M和N,其间以空格分隔。

  • 输出描述
    输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

  • 输入例子
    5 27

  • 输出例子
    11 13 17 19 23 29 31 37 41 43
    47 53 59 61 67 71 73 79 83 89
    97 101 103

3.2 题目解读

  • 需要注意的是素数的概念,大于1的只能被1和其本身整除的数,所以1不是素数,2是素数。
  • 注意运行时不要超时,所以搜索的时候要尽量缩小搜索的范围。

3.3 程序

import java.util.Scanner;
  
public class Main{
    public static void main(String[] args){
        int allnum=0;
        int mm=0;
        Scanner sc=new Scanner(System.in);
        int[] itest=new int[2];
        for(int i=0;i<2;i++){
            itest[i]=sc.nextInt();
        }
        int num=itest[1]-itest[0]+1;
        int[] data=new int[num];
        //判断是不是素数
        for(int j=2;j<1000000;j++){
        	int ans=0;
        	if(j==2|j==3)
        		ans=1;
        	else {
        		for(int k=2;k<=(int)Math.sqrt(j);k++) {
                if(j%k==0) {
                    break;
                }
                else if(j%k!=0&k<(int)Math.sqrt(j)){
                	 continue;
                    }
                else 
                        ans=1;
            }
        	}
        	if(ans==1) {
            	allnum=allnum+1;
                if(allnum>=itest[0]&allnum<=itest[1]){
                        data[mm]=j;
                        mm=mm+1;
                }
            }
        }
        for(int m=0;m

你可能感兴趣的:(Java学习)