zoukankan      html  css  js  c++  java
  • 《N诺机试指南》(六)负二进制转化习题

    先看题目:

    意思:将一个十进制数进行负二进制转化,将一个十进制数进行二进制转化大家都很清楚,取余再除2向下取整,接着反序输出

    负二进制转化类似:1.对-2取余,再取绝对值

             2.存入结果数组里

             3.将数减去余数再除-2

             4.反顺序打印出来

    代码:

    //负二进制转换
    /*
    道理与 十进制转二进制一样
    注意:有多组输入
    */
    #include <stdio.h>
    #include <math.h>
    
    int main(){
        int n;
        int result[105];
        while(scanf("%d",&n) != EOF){
             //存储负二进制字符串
            int count = 0;  // 数组下标
            if(n == 0){   //任何情况都要考虑到,不能把0给忘记了
                printf("0");
            }
            while(n != 0){
                int w = abs(n % -2);  //c语言中abs()函数用于求整数的绝对值,需要math头文件
                result[count++] = w ;
                n = (n - w)  / (-2);  //此处和转二进制不同要注意
            }
            //反序输出
            for (int i = count - 1; i >= 0; i--){
                printf("%d",result[i]);
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    python subprocess.Popen 非阻塞
    linux错误码
    python中logging
    python多线程和多进程对比
    python多进程提高cpu利用率
    django orm 操作
    linux故障判断
    linux中软链接打包、计算以及同步
    小程序收集formid跳转后收集不到
    Git Base 操作(二)
  • 原文地址:https://www.cnblogs.com/Whgy/p/12321435.html
Copyright © 2011-2022 走看看