文章
1
粉丝
73
获赞
0
访问
472
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
while (sr.hasNext()) {
// 这个n是你输入的10进制数
BigInteger n;
// 使用动态数组存储二进制数
ArrayList<Integer> s = new ArrayList<>();
n = sr.nextBigInteger();
// 如果大于则返回正,小于则为负,等于则为0
while (n.compareTo(BigInteger.valueOf(0)) > 0) {
// 模2,即取余数
int w = n.mod(BigInteger.valueOf(2)).intValue();
// 将余数添加到动态数组中
s.add(w);
// 除2
n = n.divide(BigInteger.valueOf(2));
}
// 查找第一个不为 0 的元素的索引位置
int firstNonZeroIndex = 0;
while (firstNonZeroIndex < s.size() && s.get(firstNonZeroIndex) == 0) {
firstNonZeroIndex++;
...
登录后发布评论
暂无评论,来抢沙发