文章
60
粉丝
361
获赞
43
访问
522.1k
代码成品是这样子
分享一下,今天提交了好几次,没成功,该在牛客网提交,直接成功
后面发现是题目没说清楚,输入应该是连续输入,
所以将输入改为连续输入即可。
有点无语。。。
第一步先将十进制转为二进制
第二步将二进制逆序,因为第一部已经逆序了,所以这步不用做
第三步是将逆序二进制转为十进制
这三步的主要难点在于是对字符串操作,所以加法运算和乘法运算要重新写,其他模块的思路直接用老师课上讲的。
#include
#include
#include
#include
using namespace std;
string chufa(string s)
{
int jiewei=0;
for(int i=0;i {
int temp=jiewei*10+s[i]-'0';
s[i]=temp/2+'0';
jiewei=temp%2;
}
int j=0;
while(s[j]=='0')
j++;
return s.substr(j);
}
string jiafa(string s1,string s2)//默认s1长于s2
{
string s3=s1+"0";//生成多一位数
int jinwei=0,temp=0;
for (int i=s1.size()-1;i>=0;i--)
{
if(i>=s1.size()-s2.size())
{
temp=jinwei+s1[i]-'0'+s2[i-s1.size()+s2.size()]-'0';
}
else
{
temp=jinwei+s1[i]-'0';
}
s3[i+1]=temp%10+'0';
jinwei=temp/10;
}
if(jinwei==1)
s3[0]='...
登录后发布评论
好无语