leetcode5.18每日一题 1073、负二进制数相加

Mr.Jia 2023-5-19 232 5/19
public class AddNegabinary {
    public static void main(String[] args) {
        int[] arr = {1,1,1,1,1};
        int[] arr1 = {1,0,1};
        int sum = 0;
        for (int i = 0; i <= arr.length - 1; i++) if (arr[i] == 1) sum += Math.pow((-2), i);
        for (int i = 0; i <= arr1.length - 1; i++) if (arr1[i] == 1) sum += Math.pow((-2), i);
        Stack<Integer> list=new Stack<>();
        to(sum, list);
        System.out.println(sum);
        int [] arr3=new int[list.size()];
        for (int i=0;i<=arr3.length-1;i++) arr3[i++]=list.pop();
        System.out.println(Arrays.toString(arr3));
    }
    static void to(int sum, List<Integer> list) {
        switch (sum % 2) {
            case 0: list.add(0);break;
            case 1: list.add(1);break;
        }
        sum = sum / 2;
        if (sum != 0) to(sum, list);
    }
}
- THE END -

Mr.Jia

5月19日07:54

最后修改:2023年5月19日
0

共有 0 条评论