输出整数的位数、按位输出(两种)以及逆序输出
輸出整數的位數、按位輸出(兩種)以及逆序輸出
- 本次數字的基本操作及解釋
- ①求數字所占位數
- ②數字逐位從高位到低位輸出
- ③數字逐位從低位到高位輸出
- ④數字逆序輸出
- 數字的按位輸出操作,逆序操作,輸出位數的操作,難度不大,而且邏輯過程比較容易理解,所以就不用圖解動畫來展示,每一個操作,上面都給了一個例子實現操作的過程。
本次數字的基本操作及解釋
本次操作包括:
①求數字位數
輸入一個數字,輸出有幾位數字。
例如輸入465132
輸出:6位
②數字逐位從高位到低位輸出
輸入一個數字從高位低位逐漸輸出。
例如輸入465132
則每一位輸出 4 6 5 1 3 2 前面為每一位數字輸出
③數字逐位從低位到高位輸出
輸入一個數字從高位低位逐漸輸出。
例如輸入465132
則每一位輸出 2 3 1 5 6 4 前面為每一位數字輸出
④數字逆序輸出
例如輸入465132 輸出231564 前面整體為一個數
①求數字所占位數
int NumberLength(int number) {int Length = 0;while (number != 0){number /= 10;Length++;}return Length; }在這里我們給函數傳入我們輸入的值。
int number;printf("please input number:");scanf_s("%d", &number);printf("這個數有%d位\n", NumberLength(number));我們通過每次對于輸入的數字每次進行除10處理甩去最后一位數字,然后長度從1開始,每次刪除一位數字之后讓長度+1
②數字逐位從高位到低位輸出
void PrintFromMax(int number) {int Putnumber;int Length = NumberLength(number); //獲得數字位數int MaxBit = pow(10,Length-1); //獲得以10為底數,指數為位數-1的值(后面解釋)while (number != 0){Putnumber = number / MaxBit; //獲得最高位printf("%d\t", Putnumber); //輸出最高位number %= MaxBit; //甩掉最高位MaxBit /= 10; } }我們在獲得以10為底以位數-1為指數的求解目的是為了獲得最高位:
舉例:輸入465132
那么MaxBit的值就是 10 的 5 次方 及就是100000
那么用465132 / 100000 的時候就可以獲得最高位的數組4
那么再用這個數字465132%100000進行操作時獲得65132將最高位刪除
后面不斷進行 MaxBit / 10 來獲得每一位的最高位,并且再獲得之后再次丟棄
知道輸入的數字等于0結束。
③數字逐位從低位到高位輸出
void PrintFromMin(int number) {int PutNumber;while (number != 0){PutNumber = number % 10;printf("%d\t",PutNumber);number /= 10;} }從低位到高位的輸出,我們先通過取余獲得最后一位:
例如 465132 % 10 得到 2 然后利用 465132 / 10 去除最后以為 讓最后一位變成3
不斷循環操作 知道輸入的數字變成0
④數字逆序輸出
int Reverse(int number) {int PutNumber;int Multiply = 1;int Reserse = 0;int Length = NumberLength(number);int MaxBit = pow(10, Length - 1);while (number != 0){PutNumber = number / MaxBit;Reserse += PutNumber * Multiply;number %= MaxBit;MaxBit /= 10;Multiply *= 10;}return Reserse; }上述過程相對于從低位到高位輸出來說,只是在甩掉數字之前把數字保留下來
然后進行以下操作:
例如:輸入465132
465132 % 10 獲得 2 然后操作2*1
甩掉2之后 46513 % 10 獲得 3 然后操作3?10 然后和前面2×1相加
甩掉3之后 4651 % 10 獲得 1 然后操作1×100 然后和前面2×1 3?10 相加
以此類推 知道輸入的數字變成0 退出 然后輸出加起來的數字
數字的按位輸出操作,逆序操作,輸出位數的操作,難度不大,而且邏輯過程比較容易理解,所以就不用圖解動畫來展示,每一個操作,上面都給了一個例子實現操作的過程。
總結
以上是生活随笔為你收集整理的输出整数的位数、按位输出(两种)以及逆序输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求解两个非负整数的最大公约数(C语言实现
- 下一篇: 最高效的回文数(C语言实现)