wu


私信TA

用户名:cncfvc

访问量:227218

签 名:

读研狗没有时间刷题了~~

等  级
排  名 3
经  验 37386
参赛次数 8
文章发表 265
年  龄 25
在职情况 学生
学  校 电子科技大学
专  业 通信工程

  自我简介:

写代码 真好玩 ~

解题思路:

如果看完了我的代码 应该就明白了


参考代码:

#include<iostream>
#include<sstream>
#include<cstring>
#include<cmath>
using namespace std;
void move(string str,int n)
{
string str1;
str1=str;
if(n>0)
for(int i=0;i<str.length();i++)
{
     str[i]=str1[(i+abs(n))%str.length()];
}
if(n<0)
{
     for(int i=0;i<str.length();i++)
     {
     	str[i]=str1[(i-abs(n)+str1.length())%str1.length()];
     
}
}
//cout<<str<<endl;
long long sum=0;
for(int i=0;i<str.length();i++)
{
sum+=pow(2,i)*(str[i]-'0');
}
cout<<sum<<endl;
}
int main()
{
int val,n;
string str="";
cin>>val>>n;
while(val)
   {
   	int t=val%2;
   	stringstream ss;
   	ss<<t;
   	str+=ss.str();
   	val=val/2;
   }
   int len=str.length();
   if(len<32)
   {
   	for(int i=0;i<32-len;i++)
   	{
   	   str+="0";
}
   }
   //cout<<str<<endl;
   move(str,n);
   return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »