Java语言程序设计【学堂在线】编程作业(第一章)

习题1:字符串排序

用Java编写一个能对一组字符串按字典序升序排序的程序 输入为N和N行字符串,需要按行输出字符串升序排序的结果 如输入
3
Abc
Abe
Abd
输出:
Abc
Abd
Abe

代码:

import java.io.BufferedReader;
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.Arrays; 
import java.util.Collections; 
import java.util.Scanner;
public class Main { 
public static void main(String args[]){ 
Scanner scanner = new Scanner(System.in); 
int sc = scanner.nextInt(); 
String[] array = new String[sc];
    for (int i=0;i<array.length;i++) {
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
     String str = null;
          try {
             str = br.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
        array[i] = scanner.next();
    }
    Arrays.sort(array);
    for (String arrays:array) {
        System.out.println(arrays);
    }
}
}

习题2:求斐波拉契数

斐波拉契数为,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 Main { 
public static void main(String[] args){ 
Scanner sc = new Scanner(System.in); 
int a = sc.nextInt(); 
System.out.println(Fib2(a)); } 
public static long Fib2(int n){ 
if(n==0||n==1) 
return 1; 
long x0=1; 
long x1=1; 
long x2 = x0+x1; 
for(int i =2;i<=n;i++){ 
x2 = x0+x1; 
x0=x1; 
x1=x2; 
} 
return x2; 
} 
}

习题3:交集

给定两个数组(数组中不包含相同元素),求两个数组的交集中元素的个数(即共同出现的数,如没有则输出为None) 如输入:
5
1 2 4 6 8
6
1 2 5 6 7 8
输出: 4

代码:

import java.util.Scanner;  
public class Main {  
  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        int n1,n2,times=0;  
        System.out.println("数组1的的长度:");  
        Scanner in=new Scanner(System.in);  
        n1=in.nextInt(); 
        long[] array1=new long[n1];
        for(int N1=0;N1<n1;N1++)  
        {  
            System.out.println("数组1的元素:");  
            array1[N1]=in.nextLong();  
        }  
        System.out.println("数组2的的长度:");  
        n2=in.nextInt();  
        long[] array2=new long[n2];  
        for(int N2=0;N2<n2;N2++)  
        {  
            System.out.println("数组2的元素:");  
            array2[N2]=in.nextLong();  
        }  
        in.close();  
        for(int count01=0;count01<n1;count01++)  
        {  
            for(int count02=0;count02<n2;count02++)  
            {  
                if(array1[count01]==array2[count02])  
                    times+=1;  
            }  
        }  
        System.out.println(times); 
    }  
}

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注