C 獲取整數各位數字

2021-06-04 23:06:53 字數 1022 閱讀 3732

設定輸入正整數,獲取各位數字。

第一種方式:

注意:預設為9位,比如說輸入123,則輸出(從個位向更高位輸出)會是3 2 1 0 0 0 0 0 0,也就是說更高位會輸出0。

**如下:

#includeusing namespace std;

const long a=;

int main()

{ long num;

int digits,i;

while(cin>>num)

{ for(i=0;i<9;i++)

{ digits=(num%a[i])/(a[i]/10); //關鍵

cout<

測試例項:

第二種方式:

#includeusing namespace std;

const int p=10; //注意

int main()

{ int n,d;

while(cin>>n)

{ while(n!=0)

{ d=n%p;

cout第二種方式比第一種代價更小一點,不用開陣列等,也更易理解點。並且,注意**中的注釋。如果修改p的值,比如改為2,則**實現了十進位製到二進位制的轉化。

當然,有二點還需注意:①輸出的數字從左到右是從低位到高位的。比如,p=2,輸入4,則輸出為0 0 1。②當p大於10時,有的位數要用a b c.....表示,**中並未給出。

第三種方式:

嚴格來說這種方法並不能獲得整數的各位數字,但卻能簡便地得到整數的總位數。所以,也就貼在這啦!

**如下:

#include#includeusing namespace std;

int main()

{ int n;

while(cin>>n)

{ double dig=log10(n);

cout分析:如果整數a的位數為n,則一定有10^n-1<=a<10^n。所以n=int(lg(a))+1。

實驗4 2 8 輸出整數各位數字

本題要求編寫程式,對輸入的乙個整數,從高位開始逐位分割並輸出它的各位數字。輸入在一行中給出乙個長整型範圍內的非負整數。從高位開始逐位輸出該整數的各位數字,每個數字後面有乙個空格。1 2 3 4 5 6 方案1 常規方法 include include intmain int number 1 用於表...

1006求正整數的位數及各位數字和

include 廈門理工學院 計算機與資訊工程學院 fnlock 程式描述 3 5求正整數的位數及各位數字和 time limit 1000ms memory limit 65536k total submit 4842 accepted 1221 description 輸入個正整數num,求它的...

C 各位數字之和排序 SDUT

time limit 1000 ms memory limit 65536 kib problem description 給定n個正整數,根據各位數字之和從小到大進行排序。input 輸入資料有多組,每組資料佔一行,每行的第乙個數正整數n,表示整數個數,後面接n個正整數。當n為0時,不作任何處理,...