1070 十進(jìn)制轉(zhuǎn)二進(jìn)制

題目描述
輸入一個(gè)非負(fù)十進(jìn)制整數(shù),將其轉(zhuǎn)換為二進(jìn)制形式輸出。
輸入
一個(gè)非負(fù)整數(shù)n (0<=n<2^31)。
輸出
對(duì)應(yīng)的二進(jìn)制形式。

樣例輸入

樣例輸出


????????此題為數(shù)組題目的第一題,對(duì)于剛剛接觸數(shù)組的同學(xué),難度可能有那么一點(diǎn)大,不知道如何逆序輸出,還有兩種特殊情況,不知道二進(jìn)制如何計(jì)算......也許都是同學(xué)們編寫程序中出現(xiàn)過的問題。但是,這些問題,都會(huì)在這里得到解決。
????????【思路】
????????想要做出來此題,必須要明白二進(jìn)制算法,不然此題無法做出來。至于二進(jìn)制如何計(jì)算可以自行百度,不過在這里說一下需要注意的地方。
????????二進(jìn)制的算法:數(shù)字每次除以2,第一次的余數(shù)作為該數(shù)二進(jìn)制數(shù)的個(gè)位數(shù),依次往后類推,直到該數(shù)字被除到只剩下0或者1,即可結(jié)束循環(huán),進(jìn)行逆序輸出。
????????那么新的問題又來了,如何逆序輸出?
????????我們使用循環(huán)的時(shí)候,應(yīng)該有使用????i++,在這里,計(jì)算機(jī)會(huì)記住你 i 循環(huán)后的值,你可以直接使用一個(gè)while循環(huán),i--,輸出數(shù)組,即可得到該數(shù)字的二進(jìn)制數(shù)字。
????????兩個(gè)特殊數(shù)字,不要忘了檢驗(yàn)特殊狀況。
????????當(dāng)up主第一次拿著代碼去提交時(shí),發(fā)現(xiàn)出現(xiàn)答案的錯(cuò)誤的問題,那時(shí)我覺得我的代碼沒有問題,但是轉(zhuǎn)念一想,還有比2小的數(shù)字,除以2之后可能出現(xiàn)錯(cuò)誤。
????????沒錯(cuò),就是0和1,這兩個(gè)數(shù)字的二進(jìn)制數(shù)都是他們本身,所以可以直接輸出。
????????在這里感謝一位仁兄,那天當(dāng)我給他講了這個(gè)題之后,那位仁兄說:“emmm,聽懂了,但是我覺得你的代碼不夠簡(jiǎn)潔,我回去拿你的代碼改改。”
????????不知道仁兄改了沒有,但是在修改的過程中,我發(fā)現(xiàn)原來的那個(gè)代碼并不難能解決1的問題,雖然修的更加復(fù)雜了,但是完善性可以說是最佳了,期待那位仁兄的簡(jiǎn)潔答案!
????????【解答】
????????最后講一下數(shù)組長(zhǎng)度的問題吧,只要不是題目要求,一般可以不用定義那么大,容易數(shù)組超限,為了標(biāo)準(zhǔn),我們可以考慮宏定義常量解決數(shù)組長(zhǎng)度問題(宏常量可以定義100或50,一般不要特別大的),定義變量容易出問題。
????????因?yàn)閛j的1070之后的題目數(shù)組難度突然增大,所以 仍然有不明白的地方的同學(xué)可以 評(píng)論區(qū)提出問題,up主幫忙解決。
