让给定的目标倒着往回走即可

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

string findTarget(int i, int target) {
    if (i == 0)
      return "";
    if (i % 2 == 0) 
        return findTarget((i-2)/2, target)+"3";
    else 
        return findTarget((i-1)/2, target)+"2";
}

int main() {
    int target; cin >> target;
    cout << findTarget(target, target);
    return 0;
}