蓝桥杯基础训练 求十六进制转换为八进制的问题

#include<iostream>
#include<bitset>
#include<cmath>
using namespace std;

int main()
{
	int n;
	cin>>n;
	long long result[n]; //存放最后结果
    //先将十六进制转换为十进制
	for(int i=1;i<=n;i++)
	{
		string s;
		cin>>s;
		result[i-1]=0;
		int len=s.size();
		for(int j=0;j<len;j++)
		{
			if(s[j]-'A'>=0&&s[j]-'F'<=0)
				result[i-1]+=(long long)(s[j]-'A'+10)*(long long)(pow(16,len-j-1));
			else if(s[j]>='0'&&s[j]<='9')
				result[i-1]+=(long long)(s[j]-'0')*(long long)(pow(16,len-j-1));
			else
				break;
		}
	}
    //用bitset库控制输出格式为八进制的数
	for(int i=0;i<n;i++)
	{
		cout<<oct<<result[i]<<endl;
	}
}

自己计算感觉结果没问题,但是蓝桥杯系统却显示错误,有没有大佬帮帮萌新,哭了

8进制是占3个比特为,16进制占4个比特为,新开辟一个空间,把16进制内存数据每次复制三个到新的空间内

 

大佬能在详细点吗 编程小白啊