方法一:
import java.util.Scanner;
public class Case_one {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int number = in.nextInt();
int temp=number;
int i;
int count=0;
for(i=0;temp!=0;i++)//计算number位数
temp/=10;
if(number!=0)//若输入0,则直接输出0
do {
count*=2;
if(((int)(number/(Math.pow(10, i-1))))%2==i%2)//取最高位 判断是否和对应位数 奇偶相同
count+=1;
number=(int) (number%(Math.pow(10, i-1)));//消除最高位
i--;
} while (i>0);
System.out.println(count);
}
}
方法二:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// 初始化
Scanner in=new Scanner(System.in);
int number,result,digit;
int a=1;
int b=0;
int count=1;//编号
number=in.nextInt();
do{
digit=number%10;
if(digit%2==count%2)
{
result=1;//奇偶性相同
}
else
{
result=0;//奇偶性不同
}
b=result*a+b;
a=a*2;
count=count+1;//或写成count++;
number=number/10;
}while(number>0);
System.out.println(b);
}
}