#include <stdio.h>
#include <math.h>
int main() {
    int num,i=0,result=0;
    scanf("%d",&num);
    while(num!=0)
    {
        if(num%10%2!=0)          //判断最低位是否为奇数,如果是,则加上10^i,i为位权
        result+=pow(10,i);
        num/=10;
        i++;
    }
    printf("%d",result);
}

逐位判断是否为奇数,是奇数就加上1*10^i,i为位权

可以手动模拟对123的处理过程:

初始,num=123,result = 0,i=0

第一轮结束后,num = 12,result = 1, i=1

第二轮结束后,num = 1,result = 1,i=2

第三轮结束后,num = 0, result = 101, i=3