#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
using namespace std;
int main() {
int N = 0;
cin>>N;
string s;
while(N>0)
{
if(N%2==0)
{
s+='3';
N=(N-2)/2;
}
else
{
s+='2';
N=(N-1)/2;
}
}
reverse(s.begin(),s.end());
cout<<s;
return 0;
}
// 64 位输出请用 printf("%lld")
奇数2*k+1和偶数2*k+2包含了所有的整数.其实输入一个数,想要推出前一个是什么:就是看当前的数为奇数还是偶数
1.奇数,则(奇数-1)/2
2.偶数,则(偶数-2)/2
此时推出前一个,循环表示当前数是否为0
结束循环时,结果为过程的逆序,reverse一下就可以了

京公网安备 11010502036488号