fork(1) download
  1. #include <iostream>
  2.  
  3. #include <string>
  4. std::string g(std::string s){int i,z;if(s=="1")return"11";for(i=z=0;i<s.length();i++)if(s[i]=='1')z++;i--;if(z%2){char c=s[i];s.erase(i);s=g(s);s+=c;}else{s[i]=s[i]==49?48:49;}return s;}
  5.  
  6. int main(){
  7. std::cout<<g("1")<<"\n";
  8. std::cout<<g("11")<<"\n";
  9. std::cout<<g("111")<<"\n";
  10. std::cout<<g("1011")<<"\n";
  11. std::cout<<g("1111")<<"\n";
  12. std::cout<<g("10111")<<"\n";
  13. std::cout<<g("101100")<<"\n";
  14. std::cout<<g("100000")<<"\n";
  15. return 0;
  16. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
11
10
101
1001
1110
10110
100100
1100000