onetwo123


私信TA

用户名:16030199004

访问量:59819

签 名:

等  级
排  名 37
经  验 10459
参赛次数 5
文章发表 91
年  龄 0
在职情况 学生
学  校 西安电子科技大学
专  业

  自我简介:

解题思路:





注意事项:





参考代码:

#include<stdio.h>
#include<math.h>
int b[32]={0},c[32]={0},i,sum=0;
int move(int a,int n){
	for(i=0;a!=0;i++){
		b[i]=a%2;
		a/=2;
	}
	for(i=0;i<32;i++){
		c[i]+=b[32-i-1];
	}
	if(n>0){	
		for(i=0;i<32-n;i++){
			b[i+n]=c[i];
		}
		for(i=32-n;i<32;i++){
			b[i-32+n]=c[i];
		}
		for(i=0;i<32;i++){
			sum+=pow(2,32-i-1)*b[i];
		}
	}
	else if(n<0){
		n=-n;
		for(i=0;i<n;i++){
			b[32-n+i]=c[i];
		}
		for(i=n;i<32;i++){
			b[i-n]=c[i];
		}
		for(i=0;i<32;i++){
			sum+=pow(2,32-i-1)*b[i];
		}
	}
	return sum;
}
int main(){
	int n,a;
	scanf("%u %d",&a,&n);
	printf("%u\n",move(a,n));
}


 

0.0分

0 人评分

  评论区