數字的交換不只那麼單調

2021-08-20 09:17:24 字數 768 閱讀 4480

如果給你兩個變數讓你交換它們的值,你一定覺得太簡單,心想這有什麼做的,然後咔咔的敲出一段**

這樣做確實交換了兩個變數的值,可是有的人看到了會說你的變數是已經賦好值,只可以快速交換當前的這兩個變數,如果有別的變數那不是還得一遍遍的修改,有這個時間自己都算出來了,仔細想想,它還可以是這樣的:

如果人家要求你不准去使用臨時變數給出更好的解答,其實它還可以是這樣的

這樣就已經很不錯了,可是它還有一種你意想不到的寫法,「^」這個符號就很重要了,它叫按位異或,它同樣可以不借助臨時變數幫助你交換兩個變數的值,**如下:

就是這麼多變的數值交換!

單調遞增的數字

給定乙個非負整數n,找出小於或等於n的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。當且僅當每個相鄰位數上的數字x和y滿足x y時,我們稱這個整數是單調遞增的。輸入 n 10 輸出 9輸入 n 1234 輸出 1234輸入 n 332 輸出 299 param n return va...

單調遞增的數字

給定乙個非負整數 n,找出小於或等於 n 的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。當且僅當每個相鄰位數上的數字 x 和 y 滿足 x y 時,我們稱這個整數是單調遞增的。輸入 n 332,輸出 299 貪心思路 要使目標數字和 n 最接近,則需要盡可能保持高位數字不動 若某高...

738 單調遞增的數字

738.單調遞增的數字 給定乙個非負整數n,找出小於或等於n的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。示例 1 輸入 n 10 輸出 9 示例 2 輸入 n 1234 輸出 1234 示例 3 輸入 n 332 輸出 299 說明 n 是在 0,10 9 範圍內的乙個整數。基本...