基础练习 数列排序
#include<bits/stdc++.h>
using namespace std;
const int N=201;
int f[N];
int n;
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>f[i];
sort(f,f+n);
for(int i=0;i<n;i++)
cout<<f[i]<<' ';
return 0;
}
基础练习 十六进制转八进制
#include<bits/stdc++.h>
using namespace std;
//const int N=201;
//int a[N];
int n;
//思路:先把十六进制转换为二进制,再转换为八进制
//十六进制的一位对应二进制的四位,直接转换成字符串
//二进制转换成八进制时,三位转换成八进制一位,所以提前在前面补足0
//然后把八进制的字符串从第一个不为‘0 ’处开始输出就可以了
void f(string shiliu)
{
string er="",ba="";
int len=shiliu.size();
for(int i=0;i<len;i++)
{
switch(shiliu[i])
{
case '0': er+= "0000"; break;
case '1': er+= "0001"; break;
case '2': er+= "0010"; break;
case '3': er+= "0011"; break;
case '4': er+= "0100"; break;
case '5': er+= "0101"; break;
case '6': er+= "0110"; break;
case '7': er+= "0111"; break;
case '8': er+= "1000"; break;
case '9': er+= "1001"; break;
case 'A': er+= "1010"; break;
case 'B': er+= "1011"; break;
case 'C': er+= "1100"; break;
case 'D': er+= "1101"; break;
case 'E': er+= "1110"; break;
case 'F': er+= "1111"; break;
default: break;
}
}
int k=er.size()%3;
if(k==0);
if(k==1) er="00"+er;
if(k==2) er="0"+er;
k=er.size();
for(int i=0;i<k;i+=3)
{
int a=(er[i]-'0')*4+(er[i+1]-'0')*2+(er[i+2]-'0');
ba+=(a+'0');
}
k=ba.size();
int p=0;
while(ba[p]=='0') p++;
for(int i=p;i<k;i++) cout<<ba[i];
cout<<endl;
}
int main()
{
cin>>n;
string s;
while(n--)
{
cin>>s;
f(s);
}
return 0;
}