基於數字處理的部分總結

2021-09-18 05:01:58 字數 2265 閱讀 5404

關於數字處理,例如計算位數,以及輸出每位的數字,首先即是學會 「丟棄高位」和 「丟棄低位」

例:給出乙個正整數 1

,求出它是幾位數   2

,順序輸出各位數字   3

,逆序輸出各位數字

c語言中,整數除以整數的結果必然為整數,如15/10=1,31/5=6 ,因此若是給定的正整數為n,我們可以用n/10來丟棄個位,直至當n==0時,丟棄了幾次個位,do while迴圈了幾次,n就是幾位數,定義count來儲存這個資料,作為返回值。

:如n==1234,令n=n/10=123,count++,count==1,迴圈了一次

此時n==123,令n=n/10=12,count++,count==2,迴圈了兩次

此時n==12 ,令n=n/10=1,count++,count==3,迴圈了三次

此時n==1,令n=n/10=0,count++,count==4,迴圈了四次,n==0,停止迴圈,故1234是四位數

#include #include //求其是幾位數

int getfigures(int n)

while(n != 0);

return count;

}

用丟棄高位求得順序輸出各位數字的值,可知n除以n的(位數-1)的次方即可得到n的最高位,然後捨棄高位,即得餘數代入n,繼續重複上述方法至n==0時,可得每位數的值,這裡用c表示n的位數

:定義power=pow(10.0,c-1)即10的c-1次方。

假如n==1234,則c==4,n/power即為1234/1000==1,得到高位進行輸出,進行取餘,令n=n%power即n=1234%1000=234,得到餘數234,此時位數降低了一位,234是三位數,故而令c-1==3

以此類推,n==234, 234/100==2,得到高位進行輸出,令n=234%100=34得到餘數34

n==34,34/10==3,得到高位進行輸出,令n=34%10=4得到餘數4

n==4,4/1==4,得到高位進行輸出,令n=4%1=0,此時n==0,停止迴圈。

//順序輸出各位數字

void printorder(int n)

while(n != 0);

printf("\n");

}

用丟棄低位求得逆序輸出各位數字的值,可知n%10的餘數即是n的最低位,進行輸出,接著用n/10來達到丟棄低位,輸出下一位的目的,重複上述,直至n==0停止迴圈

:假如n==1234, 令n%10即1234%10==4,得到低位進行輸出,然後令n=n/10=123 捨棄低位

此時n==123, n%10=123%10==3,得到低位進行輸出,令n=n/10=12 捨棄低位

n==12,  n%10=12%10==2,得到低位進行輸出,令n=n/10=1  捨棄低位

n==1,    n%10=1%10==1,   得到低位進行輸出,  令n=n/10=0   捨棄低位,此時n=0,停止迴圈

//逆序輸出各位數字

void printreverse(int n)

while(n != 0);

printf("\n");

}

最後建立乙個主函式即可聯絡上面的函式解決本例題

int main()

19:02:02

以上為個人意見總結

若有不足或是錯誤,還望指點

基於數字處理的問題總結

數字處理是c語言中極為重要的乙個板塊,有關於數字處理常見的有以下幾個問題 1 統計輸入的數字n是幾位數 2 順序輸出每一位數字 3 逆序輸出每一位數字 則針對於以上問題我們常見的解法有 丟棄高位或者丟棄低位,得到高位或者得到低位,我們用到最多的便是整除與取餘。例題 給乙個不多於五位數的正整數,要求 ...

C C 數字處理函式總結

1.絕對值 標頭檔案 函式原型 int abs int x long abs long x double abs double x long double abs long double x float abs float abs 返回 x的絕對值 2.浮點數絕對值 標頭檔案 函式原型 double...

XDOJ 數字處理

標題 數字處理 類別函式與遞迴 時間限制 2s記憶體限制 1000kb 問題描述 編寫乙個程式,從鍵盤輸入乙個非零整數n 0 n 1000000000 對整數n進行如下處理 將整數的各位數字取出來相加,如果結果是一位數則輸出該數,否則重複上述過程,直到得到的結果為一位數,並輸出該結果。例如 n 45...