关于用二进制与十进制的转换来做此题,样例过了,但是0分
查看原帖
关于用二进制与十进制的转换来做此题,样例过了,但是0分
775551
caojiaming楼主2022/10/11 12:37
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
//今天我突然想到可以用进制做本题
string a;
bool bao=false;
int main()
{
    cin>>a;//其实就是二进制转换成十进制,
    //例:二进制数10转换成十进制为2,正确
    long long dec=0;//要用long long
    // 注意,要去掉后导1
    while(a[a.length()-1]=='1')
    {
        a.erase(a.length()-1,1);
    }
    while(a[0]=='1')
    {
        bao=true;
        a.erase(0,1);//这个while是后加的
    }
    if(bao)
    {
        a="1"+a;
    }
    for(int i=0;i<a.length();i++)
    {
        dec+=pow(2,a.length()-1-i)*(a[i]-'0');//这个减'0'差点忘了
    }
    cout<<dec;
    return 0;
    //样例过了,我自己创造的数据也过了,但——————
    //提交评测,全WA
    //我下载了一个数据,为11...11010(省略号不知道有几个一)
    //还要删掉前导1,只保留一个1
    //结果呢——————
    //还是WA声一片
}

为什么此题进制就不经用呢

2022/10/11 12:37
加载中...