藍橋杯python 基礎練習12 十六進製制轉八進位制

2021-10-02 19:56:13 字數 2547 閱讀 2672

問題描述

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

輸入格式

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

接下來n行,每行乙個由09、大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。

輸出格式

輸出n行,每行為輸入對應的八進位制正整數。

【注意】

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

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

樣例輸入239

123abc

樣例輸出

714435274

思路:1.由於同時輸入好幾個數,所以準備兩個列表,乙個存放16進製制的數,另乙個存放8進製的數。

2.對存放16進製制的列表一一遍歷,先把數字轉化為10進製,然後再轉換為8進製,然後存放到另乙個列表中。

3.對存放8進製的列表一一遍歷,將其輸出。

while

true

:try

: n =

int(

input()

) q =

1 b =

while q<=n:

num =

input()

q = q+

1for z in b:

sum=

0 j =

1for i in z:

if i <=

str(9)

: num = i

elif i ==

'a':

num =

10elif i ==

'b':

num =

11elif i ==

'c':

num =

12elif i ==

'd':

num =

13elif i ==

'e':

num =

14elif i ==

'f':

num =

15sum

=sum

+int

(num)*(

16**

(len

(z)-j)

) j = j+

1 a =

ifsum==0

:print(0

)while

sum!=0:

k =sum%

8sum

=sum//8

a.reverse(

)for l in a:

print

(l,end='')

print()

except

:break

思路:大體方法和上面一直,只不過16進製制轉換10進製的時候用的是ord()函式
while

true

:try

: n=

int(

input()

) a =[[

]for i in

range

(n)]

b =[[

]for i in

range

(n)]

for i in

range

(n):

a[i]

=input()

for i in

range

(n):

s,m=0,

0for j in

range

(len

(a[i]))

:if a[i]

[j].isdigit():

s=s+

(ord

(a[i]

[j])

-ord

('0'))

*pow(16

,len

(a[i]

)-j-1)

elif a[i]

[j].isalpha():

s=s+

(ord

(a[i]

[j])

-ord

('a')+

10)*pow(16

,len

(a[i]

)-j-1)

while s:

m=s%

8 b[i]

s=int(s/8)

for i in

range

(n):

for j in

range

(len

(b[i]))

:print

(b[i]

[len

(b[i]

)-j-1]

,end="")

print()

except

:break

藍橋杯 基礎練習

basic 1 閏年判斷 給定乙個年份,判斷這一年是不是閏年。當以下情況之一滿足時,這一年是閏年 年份是4的倍數而不是100的倍數 年份是400的倍數。include using namespace std intmain basic 2 01字串 對於長度為5位的乙個01串,每一位都可能是0或1,...

藍橋杯 基礎練習

模擬。include using namespace std intmain 五重迴圈列舉或dfs均可。include using namespace std string s 00000 void dfs int dep s dep 0 dfs dep 1 s dep 1 dfs dep 1 in...

藍橋杯 基礎練習 時間轉換 Python

問題描述 給定乙個以秒為單位的時間t,要求用 h m s 的格式來表示這個時間。h 表示時間,m 表示分鐘,而 s 表示秒,它們都是整數且沒有前導的 0 例如,若t 0,則應輸出是 0 0 0 若t 3661,則輸出 1 1 1 輸入格式 輸入只有一行,是乙個整數t 0 t 86399 輸出格式 輸...