首页 > 其他 > 详细

蓝桥杯基础练习题3(16进制转8进制)1

时间:2017-01-01 16:23:18      阅读:215      评论:0      收藏:0      [点我收藏+]

系统显示测试超时。。。尴尬

#include<cstdio>
#include<iostream>
#include<cstring>
#include<math.h>
using namespace std;

int num[400005],num_o[400005];
char num_x[100005];
int main()
{
    memset(num,0,sizeof(num));
    int n,i,j,len;
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        scanf("%s",num_x);
        len=strlen(num_x);

        int t=len*4-1;
        int p=0;
        for(j=0; j<len; j++)
        {
            int xx;
            if(num_x[j]>=A&&num_x[j]<=F)
            {        
                xx=num_x[j]-A+10;
            }
            else
                xx=num_x[j]-0;
            //          printf("%d\n",xx);
            int res[10]= {0},s=4;
            while(xx)
            {
                res[s++]=(xx&1);
                xx>>=1;
            }
            s=4;
            for(int rr=t-3; rr<=t; rr++)
            {
                num[rr]=res[s++];
            }
            t-=4;
        }
  /*      for(int jj=0; jj<len*4; jj++)
        {
            printf("%d",num[jj]);
        }
        puts("");*/
        int tmp=0;
        for(int k=0; k<=len*4+3; k++)
        {
            //
            if(k%3==0&&k!=0)
            {
                num_o[p++]=tmp;
                tmp=0;
            }
            if(num[k]) tmp+=1<<(k%3);

        }
//        puts("");
        int pp=1;
        for(i=p-1; i>=0; i--)
        {
            if(pp&&num_o[i]!=0)
            {
                pp=0;
                printf("%d",num_o[i]);
            }
            else if(!pp)
            {
                printf("%d",num_o[i]);
            }
        }
        printf("\n");
    }
    return 0;
}

 

蓝桥杯基础练习题3(16进制转8进制)1

原文:http://www.cnblogs.com/jzl123/p/6241082.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!