问题 B: Octal to Binary Converter

问题 B: Octal to Binary Converter


题目描述

     We know that binary and octal are two different kinds of number systems whose bases are 2 and 8 respectively, i.e. they use 2 and 8 digits respectively to represent their numbers and these numbers are 0, 1 (for binary) and 0,1,2,3,4,5,6,7 (for octal). Now we can transform any numbers of these number system to other type of number system directly without going through the decimal numbers. 

     In this case each of the digits of the octal number is converted into its equivalent binary number and they are merged into the same order they were when they were as octal numbers, the leftmost zeroes are omitted from the number and we get the equivalent binary number. An example is given hereby to explain the method easily.

Let us take a number (34)8.

Now the binary equivalent of 3 is 011 and that of 4 is 100.

So the desired binary equivalent of the octal number is (11100)2.
输入

 The input only includes one octal number n(n>0). There are no leading zeros in n. The length of n is less than 5.
输出

 Print the equivalent binary number of the octal number n, no leading zeros.
样例输入
34
样例输出
11100
提示

[提交][状态][讨论版]

大水题,利用八进制和二进制快速转换就好,一说可以%o读入n再处理,但是我想不如直接转换敲的快,但同时也承认智商不足以想到可以用%o读入;

#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
char A[1020];
char C[8][4]={"000","001","010","011","100","101","110","111"};
void Handle(int len)
{
    for(int i=0;i<len;i++)
    {
        int value = A[i] - '0';
        if(i!=0) printf("%s",C[value]);
        else
        {
            int i;
            for(i=0;i<2;i++) if(C[value][i]!='0') break;
            printf("%s",C[value]+i);
        }

    }
}
int main()
{
   // freopen("D:\\test.txt","r",stdin);
   gets(A);
   Handle(strlen(A));
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值