我想知道如何从整数中删除数字。例如,如果我的号码为23875326,我想删除奇数,并得到2826的结果。
我一直试图打破每个数字以使用while循环检查它是偶数还是奇数,但我不知道如何将数字合并为一个整数。一件重要的事情是,我不想使用字符串,因为它不会教我任何新的东西。
答案 0 :(得分:1)
我实际上认为处理一串数字是优选的,不仅从代码可读性的角度来看,而且可能来自性能视图。话虽这么说,如果我们绝对不能在这里使用字符串,那么仍然可以直接使用整数输入。
我们可以使用num % 10
检查输入数字的每个十位数。如果该数字是偶数,我们可以将其添加到输出数字,否则不添加它。请注意,在每次迭代时,我们需要将数字缩放10到正确的指数。
以下是一个有效的代码段:
int length = (int) (Math.log10(num) + 1); // finds the number of digits
int output = 0;
int counter = 0;
for (int i=0; i < length; ++i) {
if ((num % 10) % 2 == 0) {
output += (num % 10) * Math.pow(10, counter);
++counter;
}
num = num / 10;
}
System.out.println(output);
2826
答案 1 :(得分:0)
我使用了@Tim Biegeleisen代码并对其进行了一些修改,删除了一些代码并将for循环更改为while循环:
int output = 0;
int counter = 0;
System.out.println("Enter a number");
int num = s.nextInt();
while (num != 0) {
if ((num % 10) % 2 == 0) {
output += (num % 10) * Math.pow(10, counter);
++counter;
}
num = num / 10;
}
System.out.println(output);`