蓝桥杯 基础练习 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0 9、大写字母A F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式 输出n行,每行为输入对应的八进制正整数。 样例输入 2 39 123ABC 样例输出 71 4435274 好久没做水题了,结果被这卡了近半个小时,一直超时,我看了很久的AC代码,然后把外部调用的函数都写在了main函数里面,就过了……😭,所以,亲们蓝桥杯还是少调用函数叭,能写在主函数里就写在主函数里,思路很简单,十六进制转二进制,再转八进制就OK了: # include <bits/stdc++.h> using namespace std ; int main ( ) { int t ; cin >> t ; char s [ 100005 ] ; while ( t -- ) { scanf ( "%s" , s ) ; string s1 = "" ; int len = strlen ( s ) ; for ( int i = 0 ; i < len ; i ++ ) { if ( s [ i ] == '0' ) s1 + = "0000" ; if ( s [ i ] == '1' ) s1 + = "0001"