第一道ac

牛客牛客编程巅峰赛S1第6场 - 青铜&白银

A.循环右移
题目:链接:https://ac.nowcoder.com/acm/contest/6490/A
来源:牛客网
牛牛有一个二进制数的字符串,他想把字符串循环右移k位,然后得到一个新的二进制数,你能告诉牛牛这个数的十进制值是多少吗。给定一个二进制字符串str和循环位移位数k,返回循环后的二进制数的十进制值。
示例1

输入

复制 "10110",2
"10110",2

输出

复制 21
21

说明

新二进制串为“10101”,十进制值为21

备注:

1≤∣str∣≤63,1≤k≤∣str∣1\leq|str|\leq 63,1\leq k\leq|str|1str63,1kstr
  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值转换为十进制返回
    }



全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务