核心思路:先把輸入的轉化為10進製數,然後再轉化為所需要的進製
1.將該進製數轉化為十進位制數需要乘該進製數,再**中則要逆序轉換
2.題目中還有要注意的地方輸入的為字元而不是數字時,需要轉化數值的大小,用到的
函式isdigit(a) 判斷輸入的字串是否為整數
if
(isdigit
(a[i]))
//isdigit是判斷是不是字元型 整型 陣列的函式
b[i]
= a[i]
-'0'
;//轉換成數
else
//是字母
b[i]
=(a[i]
-'a')+
10;//轉換成數,記得 + 10
3.轉換為十進位制
int len1 = i;
//i出來之後就是長度
for(i = len1 -
1; i >=
0; i --
)
4.轉換為所需要的進製n,則需要除n取餘法
//轉換成m進製時用來表示下一位放在**的指標
while
(sum >=1)
#include
#include
int main (
)int len2 =0;
//轉換成m進製時用來表示下一位放在**的指標
while
(sum >=1)
for(
int i = len2 -
1; i >=
0; i --
)//倒著輸出
if(c[i]
<10)
printf
("%d"
, c[i]);
//是數字
else
printf
("%c"
, c[i]-10
+'a');
//是字母
return0;
}
P1143 進製轉換
然後說一說如何進行n進製轉10進製或10進製轉m進製。n進製轉10進製 10進製轉m進製 include include include include include include include include include include using namespace std defin...
洛谷P1143 進製轉換
請你編一程式實現兩種不同進製之間的資料轉換。輸入格式 輸入資料共有三行,第一行是乙個正整數,表示需要轉換的數的進製n 2 n 16 第二行是乙個n進製數,若n 10則用大寫字母a f表示數碼10 15,並且該n進製數對應的十進位制的值不超過1000000000,第三行也是乙個正整數,表示轉換之後的數...
洛谷 P1143 進製轉換
請你編一程式實現兩種不同進製之間的資料轉換。輸入格式 輸入資料共有三行,第一行是乙個正整數,表示需要轉換的數的進製n 2 n 16 第二行是乙個n進製數,若n 10則用大寫字母a f表示數碼10 15,並且該n進製數對應的十進位制的值不超過1000000000,第三行也是乙個正整數,表示轉換之後的數...