1
要求程序首先输入一个整数N(N< 100)表示后面数据行数。
接着读入N行数据。
每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000),请注意行内和行末可能有多余的空格,你的程序需要能处理这些空格。
每个整数代表一个ID号。
要求程序输出1行,含两个整数m n,用空格分隔。
其中,m表示断号ID,n表示重号ID
输入:
2
5 6 8 11 9
10 12 9
输出:
7 9
这是我最初编写的程序,比较繁琐和复杂,也没有用到java的内部排序方法
import java.util.Scanner;
public class Main {
public static void main(String []args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
String kongge = in.nextLine();
String strs = new String();
for(int j = 1;j<=N;j++) {
String str = in.nextLine()+" ";
strs += str;
}
// System.out.println(strs);
String[] nums = strs.split("\\s+");
int a[] = new int[nums.length];
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
int duanceng = 0;
int chongfu = 0;
//找出最大值和最小值
for(int i = 0;i<nums.length;i++) {
// System.out.println(nums[i]);
a[i] = Integer.parseInt(nums[i]);
if(a[i]< min ) {
min = a[i];
}
if(a[i]>max) {
max = a[i];
}
}
for(int i = min ;i<=max;i++) {
int flag = 0;
int count = 0;
for(int j = 0;j<a.length;j++) {
if(a[j] == i) {
count++;
flag = 1;
}
}
if(flag == 0) {
duanceng = i;
}
if(count > 1) {
chongfu = i;
}
}
System.out.println(duanceng +" "+chongfu);
}
}
以下是参考别人经过改良后的方法…
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String []args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
String kongge = in.nextLine();
String strs = new String();
for(int j = 1;j<=N;j++) {
String str = in.nextLine()+" ";
strs += str;
}
// System.out.println(strs);
String[] nums = strs.split("\\s+");
int a[] = new int[nums.length];
int duanceng = 0;
int chongfu = 0;
//排序
for(int i = 0;i<nums.length;i++) {
a[i] = Integer.parseInt(nums[i]);
}
Arrays.sort(a);
for(int i = 0;i+1<nums.length;i++) {
if(a[i]!=a[i+1]-1 && a[i] != a[i+1]) {
duanceng = a[i]+1;
}
if(a[i] == a[i+1]) {
chongfu = a[i];
}
}
System.out.println(duanceng+" "+chongfu);
}
}
2.
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入:
3
输出:
ABACABA
import java.util.Scanner;
public class Main {
public static String digui(int n ) {
if(n == 1) { return "A";}
return digui(n-1)+(char)('A'+n-1)+digui(n-1);
}
public static void main(String []args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println(digui(n));
}
}
3.
图书馆对借阅记录进行处理,从中分析哪册图书是受学生欢迎的图书。
借阅记录信息包括书名、借阅次数、总被借阅天数等信息。
输入说明:第一行是整数N(0<N<10000),表示总借阅图书信息条数,
接下来N行,每行说明一册图书的借阅信息,
包括书名、借阅次数、总被借阅天数信息。
输出说明:最受学生欢迎的图书书名(即总借阅次数最多的图书)。
如果两本及以上图书的总借阅次数一致,总被借阅天数多的较受欢迎。
如果总被借阅天数也一致,则按图书书名的字典序都要输出
输入样例:5
C++ programming, 29, 160
Data structure, 65, 260
Data Analysis, 31, 105
C++ object oriented method, 32, 105
C programming, 31, 105
输出样例:Data structure
package com.wyc.cxsj;
/**
* 对象类:Book
* @author chen
*
*/
public class Book implements Comparable<Book>{
String name;
int days;
int cishu;
public Book(String name, int days, int cishu) {
super();
this.name = name;
this.days = days;
this.cishu = cishu;
}
@Override
public String toString() {
return "Book [name=" + name + ", days=" + days + ", cishu=" + cishu + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getDays() {
return days;
}
public void setDays(int days) {
this.days = days;
}
public int getCishu() {
return cishu;
}
public void setCishu(int cishu) {
this.cishu = cishu;
}
//多层排序 this代表是前一个对象,o代表后一个对象
@Override
public int compareTo(Book o) {
// TODO Auto-generated method stub
if(o.cishu-this.cishu == 0) {
if(o.days-this.days == 0) {
return this.name.compareTo(o.name);
}else {
return o.days-this.days ;
}
}else {
return o.cishu-this.cishu;
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
int n = in.nextInt();
String kongge = in.nextLine();
Book[] books = new Book[n];
for(int i = 0;i<n;i++) {
String str = in.nextLine();
String[] strs = str.split(", ");
Book book = new Book(strs[0], Integer.parseInt(strs[1]), Integer.parseInt(strs[2]));
books[i] = book;
}
for(Book book :books) { System.out.println(book);}
System.out.println();
Arrays.sort(books);
for(Book book :books) { System.out.println(book);}
}
}