这道题不知道为什么,只有90分,那10分就硬是找不出错误
题目是:输入一个二进制数,输出这个二进制数的17倍,二进制数不超过1000位。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[10001],b[10001],c[10001];
int main()
{
string x,y;
cin>>x;
int l1=x.size();
if(x=="0"){
cout<<0;
}
else{
y=x;
x+="0000";
l1+=4;
int l2=y.size();
for(int i=0;i<l1;i++) a[i]=x[l1-i-1]-'0';
for(int i=0;i<l2;i++) b[i]=y[l2-i-1]-'0';
int l3=(l1>l2?l1:l2)+1;
for(int i=0;i<l3;i++){
c[i]+=a[i]+b[i];
c[i+1]+=c[i]/2;
c[i]%=2;
}
if(c[l3]==0) l3--;
for(int i=l3-1;i>=0;i--) cout<<c[i];
}
return 0;
}
哪位大佬看到了能回应一下,谢谢!