https://noobdream.com/News/new/43/

入门经典

简单模拟

进制转换类问题

负二进制


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int main() {
    int i;
    while (scanf("%d", &i) != EOF) {
        int remain[100] = { 0 };
        int num = 0;
        while (1) {
            remain[num] = i % -2;

            if (remain[num] == -1) {
                remain[num] = 1;
                i = i / -2 + 1;
            }
            else {
                i = i / -2;
            }

            num++;
            if (i == 0) {
                break;
            }
        }
        for (int k = num - 1; k >= 0; k--) {
            printf("%d", remain[k]);
        }
        printf("\n");
    }
    return 0;
}

十进制和二进制