藍橋杯試題 基礎練習 十六進製制轉八進位制 C 版)

2021-10-04 00:03:05 字數 1648 閱讀 7592

問題描述

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

輸入格式

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

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

輸出格式

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

【注意】

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

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

樣例輸入239

123abc

樣例輸出

714435274

【提示】

先將十六進製制數轉換成某進製數,再由某進製數轉換成八進位制。

**一:

不過,只通過了樣例哈

#include

#include

#include

using

namespace std;

int c[10]

;int

main()

for(

int i =

0; i < n; i++);

int oct[10]

;int len = hex[i]

.length()

-1;for

(int j =

0; j < hex[i]

.length()

; j++)}

}long

long

int dec =0;

len = hex[i]

.length()

;for

(int i =

0; i < len; i++

)int e =0;

while

(dec >=8)

oct[e]

= dec;

for(

int j = e; j >=

0; j--

) cout << endl;

}return0;

}

**二:

參照了大神們寫的

#include

#include

#include

using

namespace std;

int c[10]

;string trans

(char a)

//十六進製制轉二進位制

}int

main()

for(

int i =

0; i < n; i++

)int k = bin.

length()

%3;if

(k ==1)

if(k ==2)

int t =0;

while

(t < bin.

length()

-2)if

(oct[0]

=='0'

)//消前導0的操作

} cout << oct << endl;

}return0;

}

`作為乙個新手這道題坑了我好久。每次提交**總是出現執行超時。我就去檢視了別人的**,發現我採用的第一種方法出現了複雜度過高等問題。

藍橋杯 試題 基礎練習 十六進製制轉十進位制

問題描述 從鍵盤輸入乙個不超過8位的正的十六進製制數字串,將它轉換為正的十進位制數後輸出。注 十六進製制數中的10 15分別用大寫的英文本母a b c d e f表示。樣例輸入 ffff 樣例輸出 很簡單的一道題,首先十六進製制轉換成二進位制,然後二進位制轉換成十進位制。十六進製制轉換成二進位制 可...

藍橋杯 試題 基礎練習 十進位制轉十六進製制

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製...

藍橋杯試題 基礎練習 十六進製制轉八進位制

題目 藍橋杯 基礎訓練 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由09 大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不...