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());
}
}