第一道ac
牛客牛客编程巅峰赛S1第6场 - 青铜&白银
A.循环右移
题目:链接:https://ac.nowcoder.com/acm/contest/6490/A
来源:牛客网
牛牛有一个二进制数的字符串,他想把字符串循环右移k位,然后得到一个新的二进制数,你能告诉牛牛这个数的十进制值是多少吗。给定一个二进制字符串str和循环位移位数k,返回循环后的二进制数的十进制值。
来源:牛客网
牛牛有一个二进制数的字符串,他想把字符串循环右移k位,然后得到一个新的二进制数,你能告诉牛牛这个数的十进制值是多少吗。给定一个二进制字符串str和循环位移位数k,返回循环后的二进制数的十进制值。
备注:
1≤∣str∣≤63,1≤k≤∣str∣1\leq|str|\leq 63,1\leq k\leq|str|1≤∣str∣≤63,1≤k≤∣str∣
long long rotateRight(string str, int k) { int c,b; c=str.length(); //计算数组长度 for (int j = 0; j < k; j++) { b=str[c-1]; for (int i =c-2; i >=0; i--) { //循环右移 str[i+1]=str[i]; } str[0]=b; } bitset<63>ans(str); //构造63位0,1数组,并把str存进去 return ans.to_ulong(); //把存入ans的str值转换为十进制返回 }