1.写一个程序,找出小于100000的最大素数
public class Question01 {
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
int n=100000;
for (int i = 2; i < n; i++) {
for (int j = 2; j <= i; j++) {
if(i%j==0 && i!=j){
break;
}
if(i%j==0 && i==j){
list.add(i);
}
}
}
Collections.sort(list);
System.out.println(list.get(list.size()-1));
}
}
2.写一个函数f(n),返回0-n之间出现的”1”的个数,n为正整数
public class Question02 {
public static void main(String[] args) {
System.out.println(countNumOf1(13));
}
public static int countNumOf1(int n) {
int count = 0;
int m = 1;
while(n / m != 0) {
int lowerNum = n - n / m * m;
int currentNum = (n / m) % 10;
int highNum = n / (m * 10);
if (currentNum == 0) {
// 如果为0,出现1的次数由高位决定
count += highNum * m;
} else if (currentNum == 1) {
// 如果为1,出现1的次数由高位和低位决定
count += highNum * m + lowerNum + 1;
} else {
// 如果大于1,出现1的次数由高位决定
count += (highNum + 1) * m;
}
m *= 10;
}
return count;
}
}
3.写一个程序,统计并打印一个文本文件中每行的字符个数的分布,即1个字符的有几行,2个字符的有几行等.
public class Question03 {
public static void main(String[] args)throws Exception {
BufferedReader br=new BufferedReader(new FileReader("E:\\file.txt"));
Map<Integer, Integer> map=new HashMap<Integer, Integer>();
while(br.readLine()!=null){
String readLine=br.readLine();
int length;
try {
length = readLine.trim().length();
for (Integer integer : map.keySet()) {
if(integer!=length){
map.put(length, 1);
}else{
Integer count = map.get(integer);
count+=1;
}
}
} catch (Exception e) {
}
}
System.out.println(map);
}
}