首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复不断重复的"11“

如何修复不断重复的"11“
EN

Stack Overflow用户
提问于 2019-04-10 03:38:23
回答 1查看 187关注 0票数 -4

我尝试让代码打印范围为(10到1000)的回文数字,但它总是返回11

代码语言:javascript
复制
 public class Problem{

    static int temp=0;

    static int isReverse; 

    public static int revNum(int d, int n){

        for (int i = 0; i<(Math.log10(d)); i++) {
            temp *= 10;
            temp += n%10;
            n = (n - (n%10))/10;

        }
        return temp;
    }   

    public static int checkNum(int n) {
        if(revNum(n,n) == n) {
            isReverse = n;
        }
        return isReverse;
    }

 public static void main(String[] args) {

        for(int i = 10; i <1000; i++) {
                 System.out.println(checkNum(i));
             }
    }
}

我期望输出11、22、33、44等等,但实际输出是11、11、11……(重复正确的次数,但只有一个值)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-10 03:56:13

与其他人一样,在这种情况下,您并不真正需要静态字段。局部变量就足够了。另外,考虑一下checkNum方法正在做什么。您总是看到打印11的原因是因为在if语句revNum(n,n) == n中的条件返回true之前,从checkNum返回的整数是11。

例如,当i= 10时,条件revNum(10,10) == 10将返回false,从而返回isReverse或0并打印出来。当i=11时,条件revNum(11,11) == 11将返回true,从而将isReverse设置为11并打印出来。当i= 12时,条件revNum(12,12) == 12将返回false。由于isReverse在这种情况下不会更改,因此返回并打印出该变量的当前值11。随着循环的继续,11的11个实例将被打印出来,因为下一次revNum(n,n) == n返回true是在n= 22时。

相反,您应该做的是将checkNum的返回类型更改为boolean,以检测此条件何时返回true。只有这样,您才应该在main方法中输出循环中的数字i,这样才能看到循环范围中的哪些数字是回文的。

代码语言:javascript
复制
// these variables are not really necessary
// int temp = 0;
// int isReverse;

public static int revNum(int d, int n){
    int temp = 0;
    for (int i = 0; i<(Math.log10(d)); i++) {
        temp *= 10;
        temp += n%10;
        n = (n - (n%10))/10;
    }
    return temp;
}   

public static boolean checkNum(int n) {
    return revNum(n,n) == n;
}

public static void main(String[] args) {
    for(int i = 10; i <1000; i++) {
         if(checkNum(i)) {
             System.out.println(i);
         }
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55600125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档