pku 1023 正负进制.txt
来自「一些数论题目的代码」· 文本 代码 · 共 63 行
TXT
63 行
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <algorithm>
using namespace std;
//PKU 1023 正负进制
#define NMAX 100
void solve(char *str,__int64 x,__int64 num)
{
__int64 t=x,i;
int b[NMAX];
for(i=num-1;i>=0;i--)
{
if(str[i]=='p')
{//正进制
if(t%2==0)
{
t/=2;
b[i]=0;
}
else
{
t=(t-1)/2;
b[i]=1;
}
}
else
{//负进制
if(t%2==0)
{
t/=2;
b[i]=0;
}
else
{
t=(t+1)/2;
b[i]=1;
}
}
}
if(t!=0) printf("Impossible\n");
else
{
for(i=0;i<num;i++) printf("%d",b[i]);
printf("\n");
}
}
int main()
{
__int64 i,x,num,cnum;
char str[NMAX];
scanf("%I64d",&cnum);
for(i=1;i<=cnum;i++)
{
scanf("%I64d %s %I64d",&num,str,&x);
solve(str,x,num);
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?