20. 簡答題
===編程題===
給定一個n位正整數x(比如x=12345),將其各數位反轉成一個新的正整數y(即y=54321),我們將y簡稱為x的反轉數。顯然,x和y是相互反轉的。求一個數的反轉數的演算法和程式實作可以參考教材P49例4。
給定一個目標數P,求兩個數x和y,滿足:
(1)x和y是相互反轉數。
(2)x和y的位數要相同,比如都是3位數,十進制數的高位0沒有任何意義,不計入位數;(例:x=1230,對應的y=0321,y的高位0沒有任何意義,y=321,x和y就不是位數相同的反轉數了)。
(3)x+y的和值最大且不超過P。
(4)這樣的相互反轉數對(x和y成為一對)可能有若干對,找出滿足以上各要求的最大的x。(可以理解,此時x+y的和就是不超過P的最大和,x最大那么y就是對應滿足條件的最小的y,因為x+y=y+x)
舉兩個例子:
例1:P=127,那么求得的x=92,對應的y=29,和x+y=92+29=121。不可能有比這個121更大的滿足條件的相互反轉數對了。
例2:P=32767,那么求得的x=19331,對應的y=13391,和x+y=19331+13391=32722。不可能有比這個32722更大的滿足條件的相互反轉數對了。
請編程求出P=Integer.MAX_VALUE;(即P=2147483647)并滿足題意要求的最大x。
請分點作答:
(1)給出x的值;
(2)把除錯通過的程式粘貼到作答框中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165230.html
標籤:Java相關
上一篇:springboot 監聽事件
下一篇:uni-app 呼叫 jar 包
