7.17

发布时间 2023-07-17 20:52:58作者: new菜鸟

       一、   一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

思路:

1、首先我们要输入n值;

2、然后确定这道题我们要怎么解决;

(1)明确用循环(为什么用循环呢,因为我们的因子都是多次循环才能找到的)

(2)循环要怎么用(求解因子;求解连续因子;我们还要求解连续因子的个数,因为要输出最多连续因子个数的连续因子;我还要求这个连续因子的起点,比如630的最长连续因子是5*6*7,起点是5,然后在递增输出就好了,所以起点我也要知道)

(3)确定用双循环(因为我一边要确定连续因子,我还要确定连续因子个数,求解连续因子我就要一个循环了,那么再加上一个个数我也得套在循环里,更何况还有一个起点呢)

(4)输出格式的限制:我需要先输出最长因子的个数,在输出最长连续因子相乘,乘号有讲究。

每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。

二、考试座位号

输入格式:

输入第一行给出一个正整数 N(1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。

考生信息之后,给出一个正整数 M(N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。

输出格式:

对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。

输入样例:

4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4
 

输出样例:

3310120150912002 2
3310120150912119 1

 

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String[][] record = new String[n][3];
for (int i = 0; i < n; i++) {
record[i][0] = input.next();
record[i][1] = input.next();
record[i][2] = input.next();

}
int m = input.nextInt();
for (int i = 0; i < m; i++) {
int tem = input.nextInt();
for (int j = 0; j < n; j++) {
if (tem == Integer.parseInt(record[j][1])) {
System.out.println(record[j][0] + " " + record[j][2]);
break;
}
}
}
input.close();
}
}