資源限制
時間限制: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行,每行為輸入對應的八進位制正整數。注意 輸...