迴文是一個數字,你是否從左至右或從右至左讀它讀取相同。 例如 - 1221
現在執行
假設你已經進入了1221的號碼。 您的調用方法聲明看起來像 isPalindrome(1221);
步驟1 - 這裏,我們有三個變量NR = 1221,轉速= 0和x將作爲while循環開始它檢查x是否大於保持原來的值,它是1221
一旦零或不是,在我們的例子中,1221大於0,這是真的,所以程序會進入循環。
then rev = 10 * rev + x%10;
該表達式將改變rev的初始值爲零。
10 * 0 + 1221%10將給出1作爲答案。因爲%模運算符給出的餘數等於1221除以10將給出1作爲餘數。
現在rev的值爲1。
程序將進入下一個語句更新x的值,因爲我們已經存儲了我們的迴文項的一個數字。
x/= 10 ;
這是一個速記聲明其等同於 X = X/10; 所以在這裏,當x除以10時,我們將得到122作爲商和122將被存儲在x中。
第2步 - 現在程序流將會繼續執行第一條語句(即循環之美)來檢查條件是否爲真,因爲x = 122大於0。 現在轉的值將是
rev = 10 * 1 (remember value of rev is 1 at the moment) + 122% 10 ;
轉的新值將是 轉= 10 * 1 + 2(因爲模量或122其餘部分時除以10是2時)
最終根據第一個陳述的值將是 rev = 12.
和程序將提前更改x的值,因爲我們完成了我們輸入的數字的最後兩位數字。
x = x/10; which will result us the quotient of 12.
步驟3 - 12大於0狀況的真實計劃將移動到下一條語句。
rev = 10 * rev (12) + x (12) % 10;
新轉值 轉= 120 + 2; 轉= 122
下一條語句會給我們x的另一個變化值,使我們可以完成我們的迴文數字。
x = x/10;
x = 12/10; will give us 1 as quotient
步驟4 - 而條件將再次被滿足爲1大於0
並且更新轉值將是
rev = 10* rev (122) + 1% 10;
由於潛水1與10會給我們其餘的1,所以最終的表達會 轉= 1221
現在的最後一次更改爲v (x)= x(1)\ 10; x將爲零,因爲當將1除以10時不會有商。
第5步 - 0大於0的條件將是錯誤的,並計劃將退出,同時和所有變量的最終值將是
nr = 1221
rev = 1221
x = 0
幾個語句中你的方法將證明回報鍵入布爾值。
if(nr==rev)
return true ;
else
return false;
我希望我能解釋你的流程,也想讓你幹運行非迴文數字相同的程序。
把它寫在紙上的少數... –