90分 wa#6 求助
查看原帖
90分 wa#6 求助
473635
Nobelium_255楼主2021/8/7 14:18
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,b,s[101],add[101];
int print(int a)
{ if(a<10)
  { printf("%d",a); }
  else
  { printf("%c",a-10+'A'); }
}
int write()
{ for(int i=101-n;i<101;i++)
  { print(s[i]); }
  cout<<endl;
}
int f(int a)
{ int t=1;
  for(int i=0;i<a;i++)
  { t*=b; }
  return t;
}
int main()
{ //freopen("gray.in","r",stdin);
  //freopen("gray.out","w",stdout);
  char str[1001];
  cin>>str>>b;
  int len=strlen(str);
  for(int i=0;i<len;i++)
  { if(str[i]>='0'&&str[i]<='9')
    { n+=(str[i]-'0')*f(len-i-1); }
    else if(str[i]>='A'&&i<='Z')
    { n+=(str[i]-'A'+10)*f(len-i-1); }
  }
  for(int i=0;i<101;i++)
  { add[i]=1; }
  int m=f(n);
  while(m>0)
  { for(int i=100;i>=101-n;i--)
    { if(s[i]+add[i]<b&&s[i]+add[i]>=0)
      { write();
        s[i]+=add[i];
        m--;
        break;
	  }
	  else
	  { add[i]*=-1;
	  }
	}
  }
}
2021/8/7 14:18
加载中...