文章

34

粉丝

89

获赞

2

访问

18.9k

头像
十进制和二进制 题解:实现了二进制字符串转化为十进制字符串 但依旧还是ac50%,搞不懂了。
P1176 清华大学上机题
发布于2024年3月12日 13:27
阅读数 677

#include <iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int CharToInt(char c){
    int w = c-'0';
    return w;
}
char IntToChar(int n){
    char c = n + '0';
    return c;
}
string add(string s1,string s2){//两个字符串的相加,为实现二进制转十进制字符串,这里需要s1的长度大于等于s2的长度,便于计算
    if(s1.length()<s2.length()){//s1的长度小于s2的长度
        return add(s2,s1);
    }
    int len1 = s1.length();
    int len2 = s2.length();
    string ans = "";//保存结果的字符串
    int i = len1 - 1;//因为字符串加法要从末尾开始加起
    int j = len2 - 1;
    int c = 0;//保存进位的数
    while(i >= 0 && j >=0){//跳出时,短的字符串到头了
        int temp1 = CharToInt(s1[i]);
        int temp2 = CharToInt(s2[j]);

      &nb...

登录查看完整内容


登录后发布评论

2 条评论
snake VIP
2024年3月12日 15:19

用getline或gets输入的时候要注意空行的问题,也就是输入的str1如果为空这个时候不应该有输出。

if(str1=="") continue;

赞(0)

damowanghwj : 回复 snake: 感谢感谢感谢,AC了,还真没考虑空串的输入。

2024年3月12日 17:42