通用版1.V - The Fun Number System

xiaoxiao2021-02-28  40

#include <stdio.h> #include <stdlib.h> int main() { int t,k,i; long long n; char s[100],f[100]; scanf("%d",&t); while(t--){ scanf("%d%s%lld",&k,s,&n); for(i=k-1;i>=0;i--){ if(!(n&1)){ f[i]='0'; //printf("1111\n"); n=n>>1; }else { if(s[i]=='n'){ n=n+1; } f[i]='1'; n=n>>1; } } f[k]='\0'; if(n!=0)printf("Impossible\n"); else puts(f); } return 0; }

如果n是偶数,则二进制最后一位一定是0,如果是奇数,则需要判断这一位是'p'还是'n',如果是'n'则需要特殊处理,因为如果是'n'那么这里的意思就是负数,但是你把这一位标成了1,就相当于把它当成正数来看,为了不影响下一次的处理,就要给n+1。

转载请注明原文地址: https://www.6miu.com/read-2626982.html

最新回复(0)