深信服的整体笔试题难度一般,有多刷题的经验,能立马找出了题意理解,在此,自己只是做个总结发出,有更好的解法的童靴可以一起交流,其实这四道题都是常见题型的一种变形。代码照着搬都是没有问题的哦!
第一题:求最低位
关键点说明:主要是对二进制转换,并且截取到了从右到左第一个1位置。思路简单吧!
package com.Mukvin.ShenXinFu;
import java.util.ArrayList;
import java.util.Scanner;
public class 求最低位 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string = "" ;
ArrayList<String> arrayList = new ArrayList<>();
while(!(string = scanner.nextLine()).equals("0")) {
arrayList.add(string);
}
ArrayList<Integer> res = getResFormStr(arrayList);
for (int i = 0; i < res.size(); i++) {
System.out.println(res.get(i));
}
scanner.close();
}
private static ArrayList<Integer> getResFormStr(ArrayList<String> arrayList) {
ArrayList<Integer> temp = new ArrayList<>();
for (int i = 0; i < arrayList.size(); i++) {
String erjinzhi = getErJ(Integer.parseInt(arrayList.get(i)));
//System.out.println(erjinzhi);
String subMin = getSubMinBinary(erjinzhi);
//System.out.println(subMin);
//int res = binToTen();
//System.out.println(Integer.parseInt(subMin, 2));
temp.add(Integer.parseInt(subMin, 2));
}
retur