設定輸入正整數,獲取各位數字。
第一種方式:
注意:預設為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時,不作任何處理,...