对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101,按照二进制位值将1的位的位值加起来就得到了结果13。
package digitalEigenvalue;
import java.util.Scanner;
/*
*/
public class DigitalEigenvalue {
public static void main(String[] args) {
int num;
int[] arraynum = new int[10];
int[] arraybit = new int[10];
Scanner in = new Scanner(System.in);
System.out.println("输入一个自然数(不超过100000):");
num = in.nextInt();
int i=0,count=1;
while(num != 0) {
arraynum[i] = num % 10;
if((arraynum[i]%2) == (count%2)) { //判断奇偶性
arraybit[i] = 1;
}
else {
arraybit[i] = 0;
}
num = num / 10;
i++;
count++;
}
double sum = 0;
for(int j=0;j<i;j++) {
sum = sum + arraybit[j]*Math.pow(2, j);
}
System.out.println("其数字特征值为:");
System.out.print((int)sum);
in.close();
}
}