??個人主頁:個人主頁
??系列專欄:C語言試題200例
??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站
?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家
1、題目
題目:將一個從鍵盤輸入的整數存放到一個數組中,通過程序的運行按照數組中的逆序輸出該整數,利用遞歸的方法解決問題。
分析:
設計函數實現數據的逆序存放,設定形參數組接收實參數組的地址,來存儲數據的每一位。函數體采用遞歸的方式解決問題,因此考慮遞歸進行的條件。例如,把數據 n 存放到數組 s 中,若 n 是一位數,則存放 n 到數組中;若 n 不是一位數,則存放 n/10 到數組中。
問題解決的難點在于找到數據的存放地址,通過不斷地取余和整除 10 來得到數據的每一位。為了實現數據的逆序存放,每一次整除 10 的時候,同時把存放數據的數組地址后移,這樣得到的第一位數存放在數組的最后一位……通過依次前移,即遞歸的回歸,實現整個數據的存放。通過函數 convert() 實現字符串中的數字的逆序轉換。