亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復“11”不斷重復

如何修復“11”不斷重復

慕容森 2022-09-28 10:29:30
我試圖使代碼打印范圍內的回文數字(10到1000),但它不斷返回11 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...(重復正確的次數,但只有一個值)。
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

就像其他人在這里回應的那樣,在這種情況下,您并不真正需要靜態字段。局部變量就足夠了。另外,請考慮該方法正在做什么。您總是看到打印 11 的原因是,從 返回的整數為 11,直到 if 語句 中的條件返回 true。checkNumcheckNumrevNum(n,n) == n


例如,當 i = 10 時,條件將返回 false,從而返回或 0。當 i = 11 時,條件將返回 true,從而設置為 11 并打印出來。當 i = 12 時,條件將返回 false。并且由于在這種情況下不會更改,因此返回并打印出該變量的當前值11。隨著循環的進行,將打印出 11 個實例的 11 個實例,因為下次返回 true 是 n = 22 時。revNum(10,10) == 10isReverserevNum(11,11) == 11isReverserevNum(12,12) == 12isReverserevNum(n,n) == n


相反,您應該做的是將 的返回類型更改為布爾值,以檢測此條件何時返回 true。當它發生時,只有這樣,您才應該在主方法中打印循環中的數字,以便您可以看到循環范圍內的哪些數字是回文的。checkNumi


// 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);

         }

    }

}


查看完整回答
反對 回復 2022-09-28
  • 1 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號