(类名提交时要改成Main)
字符串排序
用Java编写一个能对一组字符串按字典序升序排序的程序 输入为N和N行字符串,需要按行输出字符串升序排序的结果 如输入
3
Abc
Abe
Abd
输出:
Abc
Abd
Abe
(没有使用自带函数排序)
import java.util.Scanner;
public class StringSort {
public static void main(String[] args) {
int n;
String[] s;
Scanner input = new Scanner(System.in);
n = input.nextInt();
s = new String[n];
for (int i = 0; i < n; ++i) {
s[i] = input.next();
}
for (int i = 0; i < n; ++i)
for (int j = i + 1; j < n; ++j) {
if (s[i].compareTo(s[j]) > 0) {
String ss = s[i];
s[i] = s[j];
s[j] = ss;
}
}
for (int i = 0; i < n; ++i) {
System.out.println(s[i]);
}
}
}
求斐波拉契数
斐波拉契数为,Fib(N) = Fib(N-1)+Fib(N-2) F(0)=F(1)=1 用Java编写能求Fib(N)的程序 输入为N,须输出Fib(N)
如输入
3
输出:
3
import java.util.Scanner;
public class Fib {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
if (n < 2) {
System.out.println(1);
}
else {
long a = 1, b = 1, c;
for (int i = 2; i <= n; ++i) {
c = a + b;
a = b;
b = c;
}
System.out.println(b);
}
input.close();
}
}
//import java.util.Scanner;
//
//public class Main {
// public static void main(String[] args) {
//
// Scanner input = new Scanner(System.in);
// int n = input.nextInt();
// Long[] fib = new Long[n+1];
// fib[0] = (long) 1;
// fib[1] = (long) 1;
// for (int i = 2; i <= n; ++i) {
// fib[i] = fib[i-1] + fib[i-2];
// }
// System.out.println(fib[n]);
//
// }
//}
###使用数组有个点过不了
交集
给定两个数组(数组中不包含相同元素),求两个数组的交集中元素的个数(即共同出现的数,如没有则输出为None) 如输入:
5
1 2 4 6 8
6
1 2 5 6 7 8
输出: 4
###暴力算法 n*m
import java.util.Scanner;
public class Intersection {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; ++i) {
a[i] = in.nextInt();
}
int m = in.nextInt();
int same = 0;
for (int i = 0; i < m; ++i) {
int k = in.nextInt();
for (int j = 0; j < n; ++j) {
if (a[j] == k) {
++same;
break;
}
}
}
if (same == 0) {
System.out.println("None");
}
else {
System.out.println(same);
}
}
}