統計乙個整型數字位數,逆序 正序輸出

2021-08-29 02:57:53 字數 2110 閱讀 7370

一、 求位數

基本思路:每次丟棄數字的個位數字,同時定義乙個計算器count,初始化化為零來記錄個位數字丟棄的次數,每丟棄一次,計數器加一。其中,丟棄的次數即計算器最終的值就是這個數字的位數。例如:12345,需要丟棄五次,計數器count最終值為5,即12345的位數為5。

具體操作見下表:(對數字12345舉例)

數字n保留丟棄後數字操作

丟棄後數字

count

12345

12345/10

1234

11234

1234/10

1232

123123/10123

1212/1014

11/1005

操作的總結

count++

n/10

count++

由上圖可知:求乙個數的位數可利用迴圈,將數字n/10便可丟棄最後一位,並且將n/10賦給n,帶入下一次迴圈,同時count++。迴圈結束條件為當n等於0時。此時應當考慮當輸入n為0的特殊情況,此情況有兩種解決辦法:

i、用if語句進行判斷,當n等於0時,輸出位數為1。

ii、用do while迴圈,此迴圈可以保證至少執行一次。

二、 逆序輸出

基本思路:將第一問中丟棄的個位數字在丟棄前輸出一下即可。例如:對於整數12345,每次將個位數字丟棄前列印一下,便可得到逆序輸出序列「5、4、3、2、1」。

具體操作見下表:(對數字12345舉例)

數字n丟棄個位操作

丟棄的個位

保留丟棄後數字操作

丟棄後數n

12345

12345%10

512345/10

1234

1234

1234%10

41234/10

123123

123%10

3123/10

1212

12%10

212/1011

1%10

11/10

0操作總結

n%10

printf

n/10

n=n/10

由上圖可知:首先利用n%10可得到整數個位數字,接著將其列印,最後利用n/10得到丟棄個位數字後的n,並將其賦給n,帶入下一次迴圈。迴圈結束條件為當n等於0時。基本思路與求位數相似,只是多了利用n%10得到個位數字,並將其列印的操作。

三、 正序輸出

1、首先對於數字12345舉例,尋找規律。

數字n丟棄第一位操作

第一位數字

保留丟棄後數字操作

丟棄後數n

pow12345

12345/10000

112345%10000

2345

10000/10

2345

2345/1000

21234%1000

3451000/10

345345/100

3123%100

45100/10

4545/10

412%10

510/10

55/1

55%1

0操作總結

n/pow

printf

n%pow

n=n/10

pow=pow/10

由上圖可知:首先利用n/( 10^(位數-1) )可得到整數的第乙個數字,接著將其列印,最後利用n%( 10^(位數-1) )得到丟棄第一位數字後的n值,並將其賦給n,帶入下一次迴圈。迴圈結束條件為當n等於0時。其中的位數的值,可以通過呼叫求位數的函式。

四、 **實現

int count(int n)

while(n != 0)

return tmp;

}void printreverse(int n)//逆序輸出

printf("\n");

}void printorder(int n)

while(n != 0)

printf("\n");

}int main()

求乙個數字的位數,輸出正序反序

給出乙個正整數,要求1.求該數的位數 2.正序輸出每一位數字 3.倒序輸出每一位數字。include include 對正整數進行計數操作,統計時採用統計一位,丟棄最低位的計數方式 intcount int n return count 對正整數進行正序列印,通過呼叫計數函式實現,採用列印最高位,捨...

正序逆序輸出正整數中各位數字

一 輸出整數各位數字 求出它是幾位數 分別列印出每一位數字 按逆序列印出各位數字。define crt secure no warnings include include intgetdigit int num 整數有多少位 return count void reprintnum int num...

輸入乙個數判斷它是幾位數,並逆序和正序將各位數輸出

1 解題思路 1 首先,想要判斷這個數是幾位數,就是不斷地把原數字的個位採用對10取餘的方式得到後再剝離出,例如原數字是123,第一次對10取餘得到3,然後剝離3,就是把123對10取整,得到12,此時數字少了一位,就對位數統計加一,一直迴圈,直到剝離出所有數字。2 然後是逆序輸出各個位的數字,這個...