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

2021-10-07 22:37:20 字數 1638 閱讀 1547

資源限制

時間限制:1.0s 記憶體限制:512.0mb

問題描述

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

輸入格式

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

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

輸出格式

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

【注意】

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

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

樣例輸入239

123abc

樣例輸出

714435274

【提示】

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

(這個不是我自己敲的,寫的時候有這個想法,和乙個學弟說了,那個學弟完成的)

#include

#include

intmain()

}if(j*4%3

==1)else

if(j*4%

3==2)

else j=4;

//整除,記錄起始下標

for(

;j)}

}//至此大迴圈輸入、處理結束

for(i=

0;i)return0;

}

第二種比較麻煩的方法是自己寫的

這裡其實不用指標更節約cpu,但是沒有完全改過來,讀者自己改一下

#include

#include

#include

intmain()

//輸入一組十六進製制數

for(k=

0;k)//大迴圈

//此時a中的一組16進製制數已經每一位分別轉化為10進製了

/*for(i=0;i//檢測 j=5

;for

(i=0

;i)j=j+8;

//游標後移,此時j移動到下乙個十六進製制數的(右邊第一位) }/*

for(i=0;i<4*m+2;i++)

printf("%d",*(b+i));*/

//測試

t1=0;if

((4*m)%3

==0) t=2;

//可以寫if((4*m)%3==1) t=0; else t=3-((4*m)%3); if(

(4*m)%3==

1) t=0;

//或者寫 t=(3-((4*m)%3))%3 ;if(

(4*m)%3==

2) t=1;

//陣列0,1位存放0,如果2進製數為3的倍數就可以三位取8進製數

while

(t<

4*m+2)

*(c+t1)

=p;p=0;

//y為8進製數的游標

t1++;}

for(s=

0;s1;s++

)for

(i=s;i)printf

("%d",*

(c+i));

t1=0

;printf

("\n");

}return0;

}

基礎練習 十六進製制轉八進

問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格式 輸入的十六進製制數不會有前導0,比如012a。樣例...

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

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

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

問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格式 輸出n行,每行為輸入對應的八進位制正整數。注意 輸...