題意很簡單就是將十六進製制轉換成十八進製制,但是十六進製制字串長度達到1e6啦,所以直接轉換成十進位制在做肯定不行,所以我們要換個做法就是轉換成二進位制字串然後對每個·數字的二進位制數補齊四位(卡了好久,氣死我了),再三位一取轉換成八進位制數:
直接上ac**:
#include #include using namespace std;
int poww(int a,int b)
return ret;
}int main()
if(cnt < 4)
while(k)
reverse(s2.begin(),s2.end());
s1 += s2;
}if(s[i] >= 'a' && s[i] <= 'f')
if(cnt < 4)
while(k)
reverse(s2.begin(),s2.end());
s1 += s2;}}
//cout << s1 << endl;
for(int i = s1.size() - 1;i >= 0;i-=3)
q.push(sum);
}int flag = 0;
while(!q.empty())
if(flag == 1)
q.pop();
}cout << endl;
}return 0;
}
進製轉換 十六進製制轉八進位制 十六進製制轉十進位制
在十六進製制轉為八進位制的過程中包含了將十六進製制轉化為二進位制以及將二進位制轉化為八進位制!我自己測試是沒什麼問題,但是在藍橋杯官網的測試系統就顯示執行錯誤qwq 不知道為什麼 附 include includeusing namespace std int main if len2 i 3 2 ...
十六進製制轉八進位制
時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格式 輸...
十六進製制轉八進位制
問題描述 給定n 個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來 n行,每行乙個由 0 9 大寫字母 a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過 100000 輸出格式 輸出n 行,每行為輸入對應的八進位制正整...