經典例題 進製轉換

2021-10-05 11:29:22 字數 3387 閱讀 3331

進製轉換:

首先將p進製數x轉換為十進位制y

特別注意:當原數轉化為10進製時是否超出int或long long的儲存範圍

int y=

0,product=1;

while

(x!=0)

再將十進位制數y轉換為q進製z

int z[40]

,num=0;

dowhile

(y!=0)

//使用do while而不是while是因為如果y=0,則while會直接退出

例題:d進製的a+b

描述:

輸入兩個非負十進位制整數a和b(<2^30-1)以及d(1#include

#include

using

namespace std;

intmain()

while

(sum!=0)

;for

(int i=ve.

size()

-1;i>=

0;i--

)return0;

}綜合練習:

1. 題目描述

將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。

輸入:

多組資料,每行為乙個長度不超過30位的十進位製非負整數。

輸出:

每行輸出對應的二進位制數。

樣例輸入:

985211

1126

樣例輸出:

1111011001

11010011

10001100110

思路:大整數按字串讀入,每一位轉化為整型數字放入陣列,根據最後一位判斷大整數奇偶,奇數則二進位制最後一位為1,偶數則二進位制最後一位為0,然後按位進行除2運算,特別注意進製,直到數除完

#include

#include

using

namespace std;

intmain()

int i=0;

while

(iif(num1[i]==0

)}for(

int j=a.

size()

-1;j>=

0;j--

) a.

clear()

;//別忘了每次完後清空容器

cout<}return0;

}

2. 題目描述

求任意兩個不同進製非負整數的轉換(2進製~16進製制)。

輸入

輸入只有一行,包含三個整數a,n,b。a進製整數n,要轉化為b進製,2 =< a,b <= 16。

輸出

輸出時字母符號全部用大寫表示,即(0,1,…,9,a,b,…,f)。

樣例輸入

4 123 10

樣例輸出

27思路:將輸入數字按字串讀入,依次迴圈遍歷每一位,利用數學公式轉化為10進製數,再將10進製數除n取餘,逆序輸出。注意大寫字母

知識:

判斷數字字元:isdigit(***), 是返回非零值,否則返回零

判斷大寫字母字元:isupper(***), 是返回非零值,否則返回零

判斷小寫字母字元:islower(***), 是返回非零值,否則返回零

字元在陣列中是儲存的對應ascii碼

將ascii碼對應整數轉化為字母: (char)***x 強制轉換即可

#include

#include

#include

#include

using

namespace std;

intmain()

//十進位制數sum轉化為jz2進製數。除n取餘逆序排列

vector<

int> a;

dowhile

(sum!=0)

;//根據不同進製,大於十進位制和小於等於十進位制的分別輸出

if(jz2<=10)

else

}return0;

}

3. 問題描述

給定n個十六進製制正整數,輸出它們對應的八進位制數。

輸入格式

輸入的第一行為乙個正整數n (1<=n<=10)。

接下來n行,每行乙個,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000

【注意】

輸入的十六進製制數不會有前導0,比如012a。

輸出的八進位制數也不能有前導0。

樣例輸入239

123abc

樣例輸出

714435274

特別注意:由於16進製制數可能很長,故不能使用先轉化為10進製,再轉化為8進製的思路,無法儲存如此長度整數,只能用字串

#include

#include

using

namespace std;

intmain()

for(

int i=

0;iint length = str.

size()

;if(length%3==

1) str=

"00"

+str;

//2進製轉8進製之前,檢視2進製串前是否補0

if(length%3==

2) str=

"0"+str;

for(

int i=

0;i<=str.

size()

-3;i+=3)

int num =

(str[i]

-'0')*

4+(str[i+1]

-'0')*

2+(str[i+2]

-'0');

//求3位對應10進製

cout

} cout<}return0;

}

python3經典例題 經典例題 Python

python python開發 python語言 經典例題 python 經典例題 if巢狀 1.使用者輸入賬號 2.使用者輸入密碼 3.判斷使用者的賬號是不是alex 4.如果賬號是alex在繼續判斷密碼是不是alexdsb 5.賬號和密碼都正確提示使用者alex就是乙個dsb 6.如果賬號正確密...

經典例題4

從有序順序表中刪除其值在給定值s與t之間 要求s t l.length 0 return false for i 0 i l.length return false for k i kt k 找到 t的第乙個值 for j 從順序表中刪除其值在給定值s與t之間 包含s和t,要求s t l.lengt...

經典例題9

設l為帶頭結點的單鏈表,編寫演算法實現從尾到頭反向輸出每個結點的值 void print linklist l printf d l data 試編寫在帶頭結點的單鏈表l中刪除乙個最小值結點的高效演算法 假設最小值結點是唯一的 linklist delete linklist l pre p 掃瞄下...