Java基础选拔题(1)

1、素数问题:素数是除了1和本身没有其它因子的自然数。

(1)输出全部2位素数。

(2)判断20034534543是不是素数;

如果是合数,那么进行分解。合数分解格式:15 = 3 * 5

代码:

public class number1 {
public static void main(String[] args) {
System.out.println("全部素数有:");
out:for(int i=2;i<100;i++){
for(int j=2;j<i;j++){
if(i%j==0){
continue out;
}
}
System.out.print(i+",");
}
System.out.println();

long k=200345345343L;
for(long i = 2; i<k/2; i++){
if (k%i==0){
long t=k/i;
System.out.println(k+"="+i+"*"+t);
}
}

}
}

2、填充国际象棋盘:国际象棋盘中,第1 格放1 粒米,第2 格放2 粒米,第3格放4 粒米,第4 格放8 粒米,第5 格放16粒米,……问:64个格子总共可以放多少粒米?

输出格式:

1: 1

2: 2

3: 4

4: 8

5: 16

6: 32

……

64: 9223372036854775808

sum = 18446744073709551615

代码:

public class number2_1 {
public static void main(String[] args) {
long a=System.currentTimeMillis(); // 获取开始时间

String coun = "1";
String sum = "0";

for (int i = 1; i <=64; i++) {
System.out.println(i+":"+coun);

BigInteger big = new BigInteger(coun);
BigInteger max = new BigInteger(sum);

sum = big.add(max).toString();
coun = big.add(big).toString();
}
System.out.println("sum="+sum);

long b = System.currentTimeMillis(); // 获取结束时间
System.out.println("所耗时间是:"+(b-a)+"ms");

}
}

3、文件复制:将d:\windows目录下的全部exe文件拷贝到E:\test目录里。

代码:

public class number3 {
//文件复制将D盘dos目录下的所有exe文件拷贝到E盘test目录下

public static void main(String[] args) throws IOException {
String fu="D:\\测试文件夹";
String cun ="E:\\测试文件夹\\";
File file=new File(fu);
File[] fulist=file.listFiles(); //获取到列表

for(File i: fulist){
String name=i.getName();
if(! i.isDirectory()){
if((name).startsWith("txt", name.length()-3)){

name=i.getName();
FileOutputStream out =new FileOutputStream(cun+name);
FileInputStream in =new FileInputStream(i);

byte[] Buffer =new byte[1024];// 创建缓冲区
int len=in.read(Buffer); // 首先写入一次

while (len !=-1){
out.write(Buffer,0,len);
len=in.read(Buffer);
}
out.flush();
out.close();
in.close();
}
}


}

}
}

4、文件统计:统计一篇英文文章里每个单词的个数。

代码:

public class number4 {
public static void main(String[] args) throws IOException {
String url="D:\\测试文件夹\\t.txt";
FileReader in=new FileReader(url);
char[] str =new char[1024];

int len=in.read(str);
String st="";

while(len!=-1){
st+=new String(str);
len=in.read(str);
}
String[] list=st.split(" ");

for(String i:list){
int count=0;
for(String j:list){
if (i.equals(j)){
count+=1;
}
}
System.out.println(i+":"+count);

}


}

}

5、去重操作:去掉文件中的重复IP地址,统计不同IP地址的个数。

文件ips.txt内容:

192.168.234.21

192.168.234.22

192.168.234.21

192.168.234.21

运行结果如下:

public class number5 {
public static void main(String[] args) throws IOException {
String url="D:\\测试文件夹\\ip.txt";
BufferedReader in = new BufferedReader(new FileReader(url));
String s="";
HashSet<String> text=new HashSet<String>();
while(( s= in.readLine()) != null) {
text.add(s);
}

System.out.println(text.size());
}
}