Programers:反転バイナリ


バイナリ変換


  • この問題をバイナリで解決しやすい問題に変換
  • 十進法をn進数にする過程は以下の通りである.
    1)10進数を変換する数値nに変換して(シェア/剰余を求める)
    2)残りは右に順番に置き、シェアは0に分けます.
    3)残りを逆順に並べるとn進数に変換できる
  • n進数を10進数に変換するには<cmath>pow()を使用してください!
  • <string>の中のreverse()文字列やベクトルなどを逆方向に位置決めできます!
  • コード#コード#

    #include <string> // reverse()를 사용하기 위함
    #include <vector>
    #include <algorithm> 
    #include <cmath> // pow()를 쓰기 함 - 제곱근
    using namespace std;
    
    int solution(int n) {
        int answer = 0;
        vector<int> v;
      /* 3진법으로 변환시키는 코드! */
        while(n!=0)
        {
            v.push_back(n%3);
            n/=3;
        }
        reverse(v.begin(), v.end());
      /* 다시 10진법으로 변환시키는 코드 ! */
        for(int i=0;i<v.size();i++)
        {
            answer += pow(3,i) * v[i];
        }
        return answer;
    }