题目链接:Codeforces 399B Red and Blue Balls
题目大意:在一个竖着的盒子里,有若干个球,给出球都颜色。每次将最上面的蓝色球上面的红色球取出,然后将该蓝色球换成红色,上面补上蓝色球。问说最少要多少次操作可以使得全部球都是红色的。
解题思路:其实就是一个二进制数,注意要用long long。
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
typedef long long ll;
const int N = 60;
ll t = 1;
int main () {
	int n;
	char str[N];
	scanf("%d%s", &n, str);
	ll ans = 0;
	for (int i = 0; i < n; i++) if (str[i] == ‘B‘) {
		ans += (t<<i);
	}
	cout << ans << endl;
	return 0;
}
Codeforces 399B Red and Blue Balls(数论),布布扣,bubuko.com
Codeforces 399B Red and Blue Balls(数论)
原文:http://blog.csdn.net/keshuai19940722/article/details/20539777