プロジェクトオイラー問121

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%20121
Problem 121 「円盤ゲームの賞金額」 †
赤と青の円盤を袋から取り出す賭け事ゲームの問題。

解法
ゲーム回数が15回なので全場合を整数型で計算しても問題ありません。


#include <iostream>
using namespace std;

int main() {
	long long int dp[16]={1,0};
 	for(int i=1;i<=15;i++){
		for(int j=i;j>0;j--){
			dp[j]=i*dp[j]+dp[j-1];
		}
		dp[0]*=i;
	}
	long long int all=0,v=0;
	for(int i=0;i<=15;i++){
		if(i>=8)v+=dp[i];
		all+=dp[i];
 	}
	cout<<all/v;
 	return 0;
}
最終更新:2015年01月07日 02:15