進製轉換:
首先將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 掃瞄下...