Base 7
Given an integer, return its base 7 string representation.
Example 1:
|
|
Example 2:
|
|
Note:
The input will be in range of [-1e7, 1e7].
Default:
|
|
解答思路:
這題需要你將10進制轉成7進制,其中負數的10進制轉為7進制時一樣保留負的符號,所以如果值為負數先將其轉為正數後,待值轉為7進制再將符號加回字串之中,至於正數的10進制要轉7進制就是不斷的除以7取餘數,並將餘數轉成字串放入結果開頭之中,最後不斷的將商數重覆上述動作直到商數歸0為止。
程式碼解說:
一開始先判斷該數是否為負數,如果是就先標注其為負數並先將其轉為正數,如果該數為0就回傳”0”
|
|
再來就是不斷的將該數與7相除,並先將餘數加上48(ascii字串”0”為48)再強制轉為字串放入結果開頭,直到商數歸0才停止,最後如果先前有標註該數為負數的話,在字串開頭加上負的符號,否則就直接回傳結果
|
|
完整程式碼:
|
|
總結:
要將10進制轉成7進制,且負數的10進制轉為7進制時需一樣保留負的符號,可以先直接將數字部分轉為7進制後,再把符號加回字串之中,至於10進制要轉7進制就是不斷的除以7取餘數,並將餘數轉成字串放入結果開頭之中,最後不斷的將商數重覆上述動作直到商數歸0為止。