文章

1

粉丝

73

获赞

0

访问

472

头像
java
P1176 清华大学上机题
发布于2024年3月22日 20:45
阅读数 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++;
         ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发