Codeforces 82A-Double Cola

問題概要

5人がコーラを順番に買うことにした.
コーラーを買う個数は最初は一つで,各個人ごとに買う個数が倍々に増えていくとする.
N番目のコーラーを買う人は誰になるか.

解法

実装するだけ.
オーダーが対すうになるので間に合う.

実装(C++)

#include <iostream>
using namespace std;
string s[5]={"Sheldon", "Leonard", "Penny", "Rajesh", "Howard"};
int n;
int main() {
	cin>>n;
	n--;
	int q=5;
	int cnt=1;
	for(;n>=q;){
		n-=q;
		q*=2;
		cnt*=2;
	}
	cout<<s[n/cnt]<<endl;
	return 0;
}