Java算法,牛客网的刷题,使用Java编写
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。
数据范围:保证在 32 位整型数字范围内
一、使用步骤
1.引入库
代码如下 :
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String nextLine = scanner.nextLine();
Integer integer = Integer.valueOf(nextLine);
Integer binaryNumCnt = getBinaryNumCnt(integer);
System.out.println(binaryNumCnt);
}
/**
* int型正整数在内存中存储时1的个数
* @param srcInt
* @return
*/
public static Integer getBinaryNumCnt(Integer srcInt){
if (srcInt==null){
return null;
}
ArrayList<Integer> integerArrayList = new ArrayList<>();
while (true){
int modeRet=srcInt % 2;
integerArrayList.add(modeRet);
srcInt /= 2;
if (srcInt==0){
break;
}
}
ArrayList<Integer> arrayList = new ArrayList<>();
integerArrayList.forEach(e->{
if (e==1){
arrayList.add(e);
}
});
return arrayList.size();
}
}
2.读入数据
代码如下 :
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
这是牛客网的算法测试题,使用Java代码的解题方式。