“Dodatek sznurka binarnego” Kod odpowiedzi

Dodatek sznurka binarnego

//** fastest solution possible **//
#include <string_view>
#define int int_least8_t
class Solution {
public:
    string addBinary(const string_view& a, const string_view& b) {
        bool carry = 0;
        const string_view* small;
        const string_view* large;
        if(a.size() > b.size()) {
            small = &b;
            large = &a;
        }
        else {
            small = &a;
            large = &b;
        }
        
        string ans;
      	ans.reserve (a.size());
        int itrL = large[0].size() - 1;
        for(int i = small[0].size() - 1; i >= 0; i--) {
            if(small[0][i] == '1' && large[0][itrL] == '1' && carry == 1) {
                ans += "1";
                carry = 1;
            }
            else if(small[0][i] == '1' && large[0][itrL] == '1' && carry == 0) {
                ans += "0";
                carry = 1;
            }
            else if((small[0][i] == '1' && large[0][itrL] == '0' && carry == 0) 
                 || (small[0][i] == '0' && large[0][itrL] == '1' && carry == 0) ) {
                ans += "1";
                carry = 0;
            }
            else if(small[0][i] == '0' && large[0][itrL] == '0' && carry == 1){
                ans += "1";
                carry = 0;
            }
            else if(small[0][i] == '0' && large[0][itrL] == '0' && carry == 0){
                ans += "0";
                carry = 0;
            }
            else {
                ans += "0";
                carry = 1;
            }
            itrL--;
        }
        
        while(itrL >= 0){
             if(large[0][itrL] == '1' && carry == 1){
                ans+="0";
                carry=1;
            }
            else if((large[0][itrL] == '1' && carry == 0)
                 || (large[0][itrL] == '0' && carry == 1)){
                ans += "1";
                carry = 0;
            }
            else{
                ans += "0";
                carry = 0;
            }
            itrL--;
        }
        
        if(carry == 1){
            ans += "1";
        }
        
        reverse(ans.begin(), ans.end());
        return ans;
    }
};
#undef int
Creepy Caribou

Dodaj binarny za pomocą strun

#include <iostream>
#include <string>
using namespace std;

int DecToBin(int dec)
{
    long long bin = 0;
    int j,rem, i = 1;

    for(j=dec;j!=0;j)
    {
        rem = j % 2;
        j /= 2;
        bin += rem * i;
        i *= 10;
    }

    return bin;
}

int main()
{
    string number_1, number_2;
    int decimal_sum;

    cout<< "Enter first number: ";
    cin>> number_1;

    cout<< "Enter second number: ";
    cin>> number_2;

    decimal_sum = stoi(number_1 , 0 ,2) + stoi(number_2 , 0 ,2);

    cout<< "Binary Sum = " <<DecToBin(decimal_sum);

    return 0;
}
Sleep deprived

Odpowiedzi podobne do “Dodatek sznurka binarnego”

Pytania podobne do “Dodatek sznurka binarnego”

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu