本节的实例是一个实现一个数的数字特征值。
我写了俩种代码供大家参考:
第一个如下:
package test02;
import java.util.Scanner;
public class ShuZi01
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("请输入:");
int number = in.nextInt();
int g = number%10;
int s = number/10%10;
int b = number/100%10;
int q = number/1000%10;
int w = number/10000%10;
int sw = number/100000%10;
int bw = number/1000000%10;
int newpr;
int a,c,d,e,f,h,k;
if(number!=0&&number<1000000)
{
if(g%2==1){
a=1;
}else{
a=0;
}
if(s%2==0){
c=1;
}else{
c=0;
}
if (b%2==1){
d=1;
}else{
d=0;
}
if (q%2==0){
e=1;
}else{
e=0;
}
if (w%2==1){
f=1;
}else{
f=0;
}
if (sw%2==0){
h=1;
}else{
h=0;
}
if (bw%2==1){
k=1;
}else{
k=0;
}
newpr=a*(1)+c*(2)+d*(4)+e*(8)+f*(16)+h*(32)+k*(64);
System.out.println("该数字对应的数字特征值为"+newpr);
}else
{
System.out.println("System Error! Please input your number again!");
}
}
}
这一个比较易于理解,但比较繁琐。我们再来看一下第二种代码:
package test02;
import java.util.Scanner;
public class ShuZi02
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("请输入:");
int number=in.nextInt(),count=0,binary=0,a;
do
{
a = number%10;
if( (a%2 == 0 && (count+1)%2 == 0) || (a%2 != 0 && (count+1)%2 != 0))
{
binary=binary+(int)(Math.pow(2, count));
}
number = number/10;
count+=1;
}while(number != 0);
System.out.println("该数字对应的数字特征值为"+binary);
in.close();
}
}
第二种比较简洁。大家有什么想法可以评论区交流交流。
我们下期再见!