问题 B: Octal to Binary Converter

来源:互联网 发布:自动数控编程软件 编辑:程序博客网 时间:2024/05/20 17:24
问题 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;}
0 0
原创粉丝点击