題目
輸入一個整數,倒序輸出
出題目的
該題目目的是讓初學者能夠在實際運用中使用數學思維去解決問題,能夠通過這道題目去逐步掌握要解答這道題目需要掌握的知識點及相關技能,然後通過一步一步分析解題思路,最終能夠自己寫出代碼,完成題目。
題目分析
該題目旨在讓使用者輸入一個整數(正整數),然後通過電腦的運算,來倒序輸出。比如:輸入:53574運算後得到:47535
技能需求
變數、資料類型 、運算子、 輸入輸出、while迴圈語句
技能回顧
變數:變數是被命了名字的一塊記憶體空間,在程式運行時值能夠發生改變的量。變數可以視為一個容器,該容器儲存的資料是由定義該變數的資料類型決定的。
資料類型:資料類型是一個值的集合以及定義在這個值集上的一組操作。
運算子:運算子用於執行程式代碼運算,會針對一個以上運算元項目來進行運算。
輸入輸出:控制台的輸入使用了Console類。
while迴圈語句:while迴圈語句為:根據當前條件的真假來進行判斷是否執行該迴圈,如果為真則執行假則不執行,通常在執行期間該條件會在一定條件下改變。
解題思路
知道了這道題目會使用到的知識點後,我們來看看如何解決這道題。
先對這道題目進行簡單的分析:
輸入一個整數:如98467,倒序輸出結果是:76489那麼如何將這個數字倒序輸出呢?
首先我們觀察一下這個數字:98467,如何取出其中的最後一位7呢??
有同學在想可以放在字串中,取字串的最後一位即可,但是我必須要聲明,這道題要使用數學方法。
囧。。。囧。。。
我們想想如何在一個整數裡面取最後一位7呢??
好先簡單的提示一下:5/2=? 有同學馬上就說:等於2;那麼如何讓這個等式等於1呢??
。。。千萬別忘記了還有%(模數運算子)哦。最終5%2=1;
這樣一來我們取98467裡面的7即可以讓98467%10000或者98467%1000或者98467%100或者98467%10;
到底是%10000呢還是%100或者是其他???
舉個反例:如果使用者輸入了一個兩位元:23;取3怎麼辦呢?肯定是不能%100,只能是10了。
此時我們就發現一個規律,任意一個數組%10都可以取出他的個位元字。
好,第一步取個位元字我們已經成功,如何取出十位上的數字呢?
98467如何取出6這個數字? 我們想想7已經取出來了,是不是就不需要了呢?那麼我們刪除7後是那個數字??9846
同理可得:9846%10=6
可以看出這是一個簡單的迴圈。那麼迴圈終止的條件是什嗎??想想當我們把這個數98467的所有位元都取出來了之後,這個數變成多少了??
答案是:0;如果這個數變為0即為迴圈終止的條件。
代碼步驟
1. 定義兩個變數 分別來儲存輸入的整數和取出的數字
2. 從介面擷取輸入的整數
3. 迴圈輸出計算結果
代碼詳解
//定義兩個整數 分別儲存輸入的數字 和輸出的結果 int num, result; Console.WriteLine("請輸入要倒序輸出的數字"); num = int.Parse(Console.ReadLine()); //迴圈計算 直到輸入的數字為0時結束 while (num != 0) { //先取出最後的一位元字 //之後輸入這一位元字 //最後把當前的整數轉換為丟失最後一位元字的整數 result = num % 10; Console.Write(result); num /= 10; } Console.ReadKey();
運行效果
作者:記憶逝去的青春 出處:http://www.cnblogs.com/lukun/ 本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,如有問題,可以通過http://www.cnblogs.com/lukun/ 聯絡我,非常感謝。