今天有个小伙伴想考验一下我这几天的编程能力:
经过了20分钟的思考,得出一下代码可以实现上述需求:
public class demo {
public static void main(String[] args) {
//输一个数
System.out.println("请输入一个10位数:");
Scanner sc = new Scanner(System.in);
//10位的,默认*2
long l1 = sc.nextLong();
long l2 = l1 * 2;
//得到他的第7位数
int ii = math(l2);
//对得到的数进行判断
long aa = aa(l2, ii);
//输出结果
System.out.println("得到的数字为" + aa);
}
//截取数字的过程
public static int math(Long l) {
String s = l.toString();
char i = s.charAt(6);//默认是0开始数
int ii = Integer.parseInt(Character.toString(i));
System.out.println("第7位是:" + ii);
return ii;
}
//判断的过程
public static long aa(Long l, int i) {
for (int j = 2; j < 10; j *= 2) {
if (i % 2 == 0) {
int i1 = math(l * j);
if (i1%2 == 1){
return l*j;
}
}
}
return l;
}
}
最后试一个数字:
可以满足需求
欢迎各位大佬对我的代码进行优化的更新,感激不尽!