首页 > 试题广场 >

数据分页说明

[编程题]数据分页说明
  • 热度指数:1293 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
数据分页,对于指定的页数和每页的元素个数,返回该页应该显示的数据。

输入描述:
第一行输入数据个数,第二行全部数据,第三行输入页数,第四行输入每页最大数据个数


输出描述:
输出该页应该显示的数据,超出范围请输出'超过分页范围'
示例1

输入

6
1 2 3 4 5 6
1
2

输出

3
4
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] arr = new int[n];
        
        for(int i=0;i<n;i++){
            arr[i]=scanner.nextInt();
        }
//        
//        for(int i=0;i<arr.length;i++)
//            System.out.println(arr[i]);
//        
        int page = scanner.nextInt();    //页数
        int pageSize = scanner.nextInt();    //页面数据个数
        for(int i=page*pageSize,j=0;j < pageSize&& i < arr.length;j++,i++){
            System.out.println(arr[i]);
        }
    }
}

一看  就明白了。
发表于 2019-05-24 19:14:52 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            if(sc.hasNext()) {
                list.add(sc.nextInt());
            }
        }
        
        int pageNo = sc.nextInt();
        int pageSize = sc.nextInt();
        sc.close();
        int pages = (n - 1) / pageSize + 1;
        if(pageNo < 0 || pageNo > pages) {
            System.out.println("超过分页范围");
        } else {
            int s = pageNo * pageSize;
            for(int i = s; i < s + pageSize; i++) {
                System.out.println(list.get(i));
            }
        }
    }
}
这题有点坑,页码竟然是从0开始算
发表于 2018-05-25 00:31:15 回复(0)