c_cpp GFG灰色到二进制和二进制到灰色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp GFG灰色到二进制和二进制到灰色相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<bits/stdc++.h>
using namespace std;

// #Problem #Math #GFG
// https://practice.geeksforgeeks.org/problems/gray-to-binary-and-binary-to-gray/0

int xor_func(int a,int b){
    if(a==b){
        return 0;
    }else{
        return 1;
    }
}
int inve(char i){
    int x=i-'0';
    if(x==0){
        return 1;
    }
    return 0;
}
string binarytoGray(string binary) {
    vector<int> a;
    for(int i=0;i<binary.size();i++){
      a.push_back(binary[i]-'0');
    }
    string gray;
    gray+=a[0]+'0';
    for(int i=1;i<binary.size();i++){
        gray+=(xor_func(a[i-1],a[i]))+'0';
    }
    return gray;
}
string graytoBinary(string gray) {
    vector<int> a;
    for(int i=0;i<gray.size();i++){
        a.push_back(gray[i]-'0');
    }
    string bin;
    bin+=a[0]+'0';
    for(int i=1;i<gray.size();i++){
        if(a[i]==0){
            bin+=bin[i-1];
        }else{
            bin+=inve(bin[i-1])+'0';
        }
    }
    return bin;
}

int main(){
    int t;
    cin>>t;
    while(t--){
        string b;
        string g;
        cin>>b;
        cin>>g;
        cout<<binarytoGray(b)<<endl;
        cout<<graytoBinary(g)<<endl;
    }
    return 0;
}

以上是关于c_cpp GFG灰色到二进制和二进制到灰色的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp GFG重复和失踪

c_cpp 这个程序样例将生成一个以蓝灰色为背景的橘黄色三角形,

禁用时设置 UIBarButtonItem 灰色

c_cpp GFG-门

c_cpp GFG骑士步行

c_cpp GFG发现号码