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发现号码