1 条题解

  • 0
    @ 2025-4-7 21:28:48

    C :

    #include <stdio.h>
    int main(){
    	int n;
    	unsigned int v;
    //	freopen("1.txt","r",stdin);
    	while (scanf("%u %d",&v,&n)==2)
    	{
    		if (n>0)
    		{
    			printf("%u\n",(v>>n|v<<(32-n)));
    		}else{
    			n*=-1;
    			printf("%u\n",(v<<n|v>>(32-n)));
    		}
    	}
    //	fclose(stdin);
    	return 0;
    }
    

    C++ :

    #include <stdio.h>
    int main() {
    	unsigned int move(unsigned int, int);
    	unsigned int a;
    	int n;
    	scanf("%u %d", &a, &n);
    	printf("%u\n", move(a, n));
    	return 0;
    }
    unsigned int move(unsigned int a, int n) {
    	unsigned int temp;
    	if (n < 0) {
    		temp = a & (((1 << (-n)) - 1) << (32 + n));
    		return ((a << (-n)) | (temp >> (32 + n)));
    	} else {
    		temp = a & ((1 << n) - 1);
    		return ((a >> n) | (temp << (32 - n)));
    	}
    }
    
    
    • 1

    信息

    ID
    1396
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者