#include <stdio.h> #include <string.h> void digui(char *data,int n) { if(n-1==0) //确定递归结束条件 { strcat(data,"2"); } else if(n-2==0) //确定递归结束条件 { strcat(data, "3"); } else if(n%2==1) { n=(n-1)/2; strcat(data, "2"); digui(data, n); } else if(n%2==0) { n=(n-2)/2; strcat(data, "3"); digui(data, n); } } int main() { int n; scanf("%d",&n); char data[100]={0}; digui(data, n); int len=strlen(data); char data0[100]={0}; for(int i=0;i<len;i++) { data0[len-i-1]=data[i]; } printf("%s\n",data0); return 0; }