试图弄清楚如何制作一个程序来识别相等的数字

时间:2018-11-05 07:48:29

标签: java

所以我真正的问题是,当代码从1到99运行时,如何使此代码识别所有“相似”数字,例如:11,22,33,44,... 在程序识别出它们的同时,它会发送一条消息。

package doodle;

int num2=11;
for (int i=1; i<100; i++) {
    System.out.println(i);
    int num1=i;
    if(num1==num2) {
        System.out.println("WOW"); 
    }
} 

谢谢

3 个答案:

答案 0 :(得分:1)

我会使用字符串

for (int i = 11; i < 100; i++) {
    StringBuffer orig = new StringBuffer();
    String left = orig.append(i).toString();
    if (orig.reverse().toString().equals(left)) {
        System.out.println(left);
    }
}

或者如果您真的想使用带有不稳定逻辑的int

int start = 11;
for (int i = 11; i < 100; i++) {
    if (i == start) {
        System.out.println(start);
        start += 11;
    }
}

修改

正如@mark正确指出的那样,这些解决方案仅在范围不超过100的情况下有效

答案 1 :(得分:1)

int num2=11;
for (int i=1; i<100; i++) {
    if(i%num2==0) {  //<---- look alike
        System.out.println("WOW");
         }

答案 2 :(得分:0)

我会使用String转换和codePoint比较来实现

for (Integer number = 0; number < 1000; number++) {
    System.out.println(number);

    String stringnumber = String.valueOf(number);

    if (stringnumber.length() > 1 && stringnumber.codePoints().allMatch((digit) -> digit == stringnumber.codePointAt(0))) {
            System.out.println("WOW");
    }
}

需要使用长度检查(length()> 0)来排除仅一位数字的所有数字,否则,程序也会为"WOW"中的所有数字打印0 - 9

0Integer.MAX_VALUE的所有数字都可以处理。