poj 1023(理解二进制的加法运算)


#include
#include
using namespace std;
int main(){
    long long n;
    char s[100],out[100];
    int t,i,j,k,len;
    scanf("%d",&t);
    while(t--){
        scanf("%d%s%lld",&k,s,&n);
        len = strlen(s);
        if(n==0){
            printf("0\n");
            continue; 
        }
        for(j=len-1;j>-1;j--){
            if(n%2==1||n%2==-1){
                if(s[j]=='p'){
                    n = (n-1)/2;
                }
                else{
                    n = (n+1)/2;
                }
                out[j] = 1;
            }
            else{
                out[j] = 0;
                n /= 2;
            }
        }
        if(n==0){
            for(i=0;i){
                printf("%d",out[i]);
            }
            printf("\n");
        }
        else{
            printf("Impossible\n");
        }
    }
    return 0;
}
poj