倒序輸出一個(gè)整數(shù)是很多朋友編程入門(mén)都會(huì)遇到的練習(xí)題,那么我們?cè)撊绾稳?shí)現(xiàn)它呢?其實(shí)單純說(shuō)代碼怎么實(shí)現(xiàn)是很簡(jiǎn)單的,但是開(kāi)發(fā)者不應(yīng)該只注重代碼實(shí)現(xiàn)而不去管解題思路和算法設(shè)計(jì)思想,這里,我就我所學(xué)知識(shí)分享一下該問(wèn)題的幾個(gè)實(shí)現(xiàn)方法
利用基本運(yùn)算符取余
假設(shè)輸入一個(gè)整數(shù)a=123456,如果倒序輸出就是654321;這里我們首先很容易想到用循環(huán)來(lái)實(shí)現(xiàn),從最后面一位起,往左每次輸出一位,那么問(wèn)題是怎么去讓他往左每次輸出一位呢?對(duì),對(duì)整數(shù)用10取余,因?yàn)槲覀冇玫恼麛?shù)都是十進(jìn)制的,所以用10取余后,就會(huì)剩下個(gè)位,123456第一次取余結(jié)果是6,那么下一次循環(huán)怎么辦呢?怎么讓123456變成12345就好了 。對(duì),就是這個(gè)思路,我們直接對(duì)將123456除以10得到12345.6,得到的是浮點(diǎn)數(shù),怎么辦呢?
還記得int的隱式轉(zhuǎn)換么?12345.6轉(zhuǎn)換為int后,小數(shù)點(diǎn)后面的會(huì)丟失,只保留整數(shù) 。OK,剛好利用這個(gè)特性就可以實(shí)現(xiàn)了 。

文章插圖
轉(zhuǎn)換為字符處理
上面講的方法是最基本的方法,很多初學(xué)者應(yīng)該都有接觸過(guò),下面這個(gè)方法就是將整型轉(zhuǎn)換為字符串來(lái)處理,利用一些字符串處理函數(shù),這個(gè)可能比上一個(gè)方法用到的知識(shí)更多一些 。
1 . 第一個(gè)用到的是逆序迭代器

文章插圖
2 . 第二個(gè)用到的是字符串截取,從最后一位開(kāi)啟往前截取

文章插圖
3 . 把整數(shù)轉(zhuǎn)換為字符數(shù)組再利用循環(huán)從后往前

文章插圖
通過(guò)字符數(shù)組和棧實(shí)現(xiàn)
一想到逆序我們很自然會(huì)想到棧這個(gè)先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),那么這個(gè)問(wèn)題雖然用不到棧這么復(fù)雜的技術(shù),但是這也未嘗不是一個(gè)思路,一個(gè)問(wèn)題多種實(shí)現(xiàn)方式,從中尋求最簡(jiǎn)潔最快速的方法不正是算法開(kāi)發(fā)的魅力么?
該方法的思路是:將整數(shù)轉(zhuǎn)換為字符數(shù)組然后將數(shù)組逐一入棧,最后再逐一出棧,這樣就實(shí)現(xiàn)了逆序的輸出 。

文章插圖
總結(jié)
一個(gè)簡(jiǎn)單的算法問(wèn)題,我給出了上面幾個(gè)解決方案,但是就實(shí)用性、簡(jiǎn)便性和效率肯定是第一個(gè),為什么又忍不住寫(xiě)后面幾種方法呢?其實(shí)我們?cè)谌粘5拈_(kāi)發(fā)工作中,一個(gè)業(yè)務(wù)需求的實(shí)現(xiàn)我們要做的不僅僅只想辦法去實(shí)現(xiàn)它,而是盡可能想更多的方法,然后以最優(yōu)的方法去解決它 。
最后,如果你想學(xué)C/C 可以私信小編“01”獲取素材資料以及開(kāi)發(fā)工具和聽(tīng)課權(quán)限哦!
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專(zhuān)業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 高山族語(yǔ)言介紹,他們具體有哪幾種語(yǔ)言?
- 以色列語(yǔ)言
- 作為首款國(guó)產(chǎn)編程語(yǔ)言,易語(yǔ)言有發(fā)展的前景嗎?
- 一篇關(guān)于網(wǎng)絡(luò)語(yǔ)言的英語(yǔ)作文
- 網(wǎng)絡(luò)語(yǔ)言是否可以進(jìn)入作文我是反方四辯,求總結(jié)陳詞,最好多加些例子,字?jǐn)?shù)200字以上
- 圖片以及書(shū)籍 c語(yǔ)言從入門(mén)到放棄PPT
- 傣族語(yǔ)言
- 國(guó)家通用語(yǔ)言
- 互聯(lián)網(wǎng)it行業(yè),未來(lái)十年哪些編程語(yǔ)言將大展宏圖?
- 維吾爾族語(yǔ)言
