#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

京公网安备 11010502036488号