问题标题: 酷町堂:3818 WA——0分 样例都过了,为啥0分

0
0
黄子扬
黄子扬
新手守护
新手守护

3818   高精度进制转换

题目描述 Description

我们可以使用一个3位的二进制数来表示八进制中的一个数。000、001、010、011、100、101、110、111分别对应八进制中的0~7。
例如对于八进制的整数
12
我们可以用二进制表示为
001010

现在需要输入一个二进制的数据,请你把它转换成八进制输出。

输入描述 Input Description

输入一个二进制整数(可能是0开头,不超过10000位)

输出描述 Output Description

输出对应的八进制数据(开头非0)

样例输入 Sample Input

 

1010

样例输出 Sample Output

 

12

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int i,j,n,s28[10000],sum=0;
    string s2;
    string s8[10]={"0","1","2","3","4","5","6","7"};
    getline(cin,s2);
    if(s2.size()%3==1)
    s2.insert(0,"00");
    if(s2.size()%3==2)
    s2.insert(0,"0");
    j=s2.size()/3;
    for(i=s2.size()-1;i>=0;i-=3)
    {
        s28[j]=(s2[i]-48)*1+(s2[i-1]-48)*2+(s2[i-2]-48)*4;
        j--;
        sum++;
    }
    for(i=1;i<=sum;i++)
    cout<<s8[s28[i]];
    return 0;
}

 


0
0
0
0
0
0
许金夫
许金夫
初级天翼
初级天翼

高精度你学到了吗就来问

0
我要回答