以乙個例題為例:
給乙個整數,要求:
①求出他是幾位數;
②分別輸出每一位數字;
③按逆序輸出各位數字,例如原數為321,應輸出為123.
解題思路:
(1)判斷幾位數,每次num /= 10然後計數,直到除到原數為0為止,計數的數字就為位數
(2)主要利用「/」和「%」得到各個位的數字,例如123%10就可以得到個位數字3,如果要獲取十位數字2,那
就需要123/10得到12然後在繼續12%10,依次進行取各個數,然後丟棄最低位,就可以逆序輸出各個位的數字.
(3)順序輸出要比逆序複雜一點,但是依然使用的是「/」和「%」兩個符號,例如123/100可以得到最高位的數字
如果要獲取接下來的這個數字,123%100,就可以丟棄最高位得到23,而此時這是個兩位數則23/10就可以得到2.......
源**:
#include
int fun(int num)//判斷num是幾位數
while (num != 0);
return count;
}void out(int num)//輸出每一位數字
if (num < 0) //如果數字為負,只顯示乙個負號
do while (num != 0);
}void rev(int num)//逆序輸出
do while (num != 0);
}int main()
組合語言輸出乙個多位數
研究了一下怎麼用組合語言 求 1 20 的和 並且列印到螢幕上,難點就在於列印。大概的思路就是 每次 除10,把餘數儲存到陣列中,最後把陣列倒序輸出。輸出乙個 小於 2560 的多位數 model small data num db 0,0 0,0 0,0 0 定義乙個陣列num stack db ...
逆序輸出乙個整數的各位數字 整數反轉
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 剛看到這題題目,第一反應是先將整數轉化為字串...
棧的應用計算器(實現多位數字的運算)
package stack 思路分析 1.通過乙個 index 值 索引 來遍歷我們的表示式 2.如果我們發現是乙個數字,就直接入數棧 3.如果發現掃瞄到是乙個符號,就分如下情況 3.1 如果發現當前的符號棧為 空,就直接入棧 3.2 如果符號棧有操作符,就進行比較,如果當前的操作符的優先順序小於或...