上海交通大学计算机考研复试 2015年(java)

问题一:
给出一个闭区间,输出其中多少素数

import java.util.*;
import java.io.*;
import java.text.* ;
import java.math.*;
public class Main
{
	static HashMap<String, Integer> map;
	static boolean[] visited;
	static int len;
	static int k;
    public static void main(String[] args){
    	try {
	        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
	        String str;
	        boolean[] notPrime;
	        while((str = br.readLine()) != null) {
	        	String[] parts = str.split(" ");
	        	int m = Integer.parseInt(parts[0]);
	        	int n = Integer.parseInt(parts[1]);
	        	notPrime = new boolean[n+1];
	        	for(int i = 2; i <= n; i++) {
	        		if(!notPrime[i]) {
	        			for(int j = 2*i; j <= n; j += i) {
	        				notPrime[j] = true;
	        			}
	        		}
	        	}
	        	ArrayList<Integer> list = new ArrayList<>();
	        	for(int i = m; i <= n; i++) {
	        		if(!notPrime[i]) list.add(i);
	        	}
	        	if(list.size() == 0) System.out.println("-1");
	        	else {
	        		System.out.print(list.get(0));
	        		for(int i = 1; i < list.size(); i++) {
	        			System.out.print(" "+list.get(i));
	        		}
	        		System.out.println();
	        	}
	        }
 	    } catch (IOException e) {
	        e.printStackTrace();
	    }
    }
}

问题二:
输入一个字符串,输出其中的最长重复子串,要求该子串重复出现的位置不能重叠,若没有输出NULL

import java.util.*;
import java.io.*;
import java.text.* ;
import java.math.*;
public class Main
{
	static HashMap<String, Integer> map;
	static boolean[] visited;
	static int len;
	static int k;
    public static void main(String[] args){
    	try {
	        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
	        String str;
	        while((str = br.readLine()) != null) {
	        	int len = str.length();
	        	String res = "NULL"; 
	        	for(int i = len/2; i >= 2; i--) {
	        		String s = str.substring(0, i);
	        		int j = 0;
	        		for(; j < len; j += i) {
	        			int cur = str.indexOf(s, j);
	        			if(cur != j) break; 
	        		}
	        		if(j == len) {
	        			res = s;
	        			break;
	        		}
	        	}
	        	System.out.println(res);
	        }
 	    } catch (IOException e) {
	        e.printStackTrace();
	    }
    }
}


问题三:
给出椭圆标准方程中的两个参数,输出椭圆周长,精确到小数点1位
不保证做对

import java.util.*;
import java.io.*;
import java.text.* ;
import java.math.*;
public class Main
{
	static HashMap<String, Integer> map;
	static boolean[] visited;
	static int len;
	static int k;
    public static void main(String[] args){
    	try {
	        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
	        String str;
	        while((str = br.readLine()) != null) {
	        	String[] parts = str.split(" ");
	        	int a = Integer.parseInt(parts[0]);
	        	int b = Integer.parseInt(parts[1]);
	        	double res = 2*Math.PI*b+4*(a-b);
	        	System.out.printf("%.1f", res);
	        }
 	    } catch (IOException e) {
	        e.printStackTrace();
	    }
    }
}
发布了332 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43306331/article/details/105114464