哈嘍大家好,這裡是Java小白成長記!
昨天分享了怎麼來判斷一個數字的奇偶性,其中用到了if選擇語句和求餘運算,雖然都不是很難的知識點,但是也不可能分享一次就不管了,所以今天繼續分享一個和它倆有關的代碼:如何判斷一個五位數是不是迴文數。
首先了解一下迴文數是什麼:迴文數是指一個數字從前往後讀和從後往前讀結果是一樣的。比如:2、66、151、2332、85658等等,只要正著念和反著念是一樣的,都是迴文數。因此迴文數是在太多了,今天就只寫一個判斷五位數是不是迴文數的代碼。
思路:首先還是先把規律找好,既然要寫五位數的代碼,先用一個五位數來舉例子:12321。因為我們不可能在java中說什么正著讀和反著讀,要把這句話換成數學的語言,也就是個位等於萬位,十位等於千位,只有這兩個條件同時滿足,這個數才是迴文數。下面的問題就是如何分別得到萬位、千位、十位、個位的數字了。
首先說萬位,想到萬位的數字,直接用這個數除以一萬,得到的就是萬位了,可能有人好奇除完以後的小數呢?這裡就有一個小的知識點了,我們如果定義了一個整數,這個整數運算完還是整數,小數部分會直接捨去,而且並不會4舍5入。舉個例子:
定義一個整數i初始值為5,輸出i/2的值,我們都知道答案是2.5,看一下結果:
結果只是2,小數部分直接捨去了,而且也沒有四捨五入。因此萬位直接除以一萬就行了。
再來看個位:個位就要用到求餘數了,把這個數對10求餘數,得到的就是個位了。比如用21對10求餘數,是不是商2餘1。
最後就是十位與千位:這兩個要把上面的結合一下,十位要先把這個數除以10,讓十位變為個位,再對10求餘數。比如21怎麼得到數字2,先用21/10=2,2再對10求餘數,商0餘2。千分位是同樣的道理,先把這個數除以1000再對10求餘數。
每個數字都得到了,現在就要讓萬位與個位、十位與千位同時相等,這裡就要用到邏輯運算符了,&&或者||。
&表示邏輯與,|表示邏輯或,!表示邏輯非,&&是短路與,兩邊同時為真才為真,||是短路或,一邊為假就為假。
代碼:
第8行:首先提示用戶輸入一個五位數,第九行用變量n來存放這個數字。
第10行:為了防止用戶輸錯,用來一個if選擇語句,因為五位數最大是99999,最小是10000,所以這裡用來一個短路或「||」,如果輸入的數字大於99999或者小於10000,就會告訴用戶輸入不正確。
第13行:如果輸入的是五位數就會執行這行代碼,又是一個if選擇語句,如果萬位等於個位同時千位等於十位,括號裡整體才為true,也就表示這個數是迴文數,接著輸出信息就行了;如果兩個條件有一個不滿足,括號裡整體結果就為false,就表示這個數不是迴文數,就執行else後面的語句了。
看一下運行結果:
可以看到,我們想實現的功能全部實現了,代碼沒有任何問題。
今天的分享就結束了,有任何問題歡迎評論或私信。