zoukankan      html  css  js  c++  java
  • 进制转换

    P1022 进制转换
    时间: 1000ms / 空间: 131072KiB / Java类名: Main

    背景

    太原成成中学第3次模拟赛 第2道

    描述

    对于十进制整数N,试求其-2进制表示。
    例如,因为 1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13 ,所以(-13)_10 = (110111)_-2。

    输入格式

    一个整数,代表要转换的十进制数。

    输出格式

    一个整数,代表N的-2进制表示。

    测试样例1

    输入

    -13

    输出

    110111

    备注

    |N| <= 2000000000
    Vivian Snow
    广东汕头聿怀初级中学NOIp第一次训练用题
     

     
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 #define inf 1000000000
     6 using namespace std;
     7 int n,i=0;
     8 char s[100000];
     9 int main() 
    10 {
    11     scanf("%d", &n);
    12     i = 0;
    13     do {
    14         if(n & 1) {
    15             n--;
    16             s[i] = '1';
    17         }
    18         else {
    19             s[i] = '0';
    20         }
    21         i++;
    22         n /= -2;
    23     } while(n);
    24     while(putchar(s[--i]), i);
    25     return 0;
    26 }
    View Code
     // 逗号表达式
    返回最后一个东西的值
    等价于while (i)
    但是在此之前做了个Putchar
    do{
     putchar(s[--i]);
    }while(i>0)
  • 相关阅读:
    LuoguP1126 机器人搬重物(BFS)
    POJ1950----DFS
    C
    B
    A
    C
    B
    A
    A
    B
  • 原文地址:https://www.cnblogs.com/gc812/p/5781440.html
Copyright © 2011-2022 走看看