题解: 通过do while循环判断数字n/10依次判断是否循环进行到最后,使用do while可以保证n只有一位时也可以计算
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
// 最终输出的数
int m = 0;
// 当前数字所在的位数
int q = 1;
do{
// 从右起当前数位为偶数,变为0,不需要累计该位置上
if( n % 10 % 2 == 0){
n = n /10;
// 从个位起的第几位
q *= 10;
} else{
// 从右起当前数位为奇数,变为1,直接加上该数位即可
m = m + q;
n = n / 10;
q *= 10;
}
}while(n != 0);
System.out.println(m);
}
}
}