解题思路:杨辉三角,最后转换注意一下,记得用double
代码如下:
#include <algorithm>
#include <string.h>
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
using namespace std;
double dp[31][31],Max,Min;
int main()
{
int i,j;
memset(dp,0,sizeof(0));
for(i=1;i<=29;i++)
for(j=1;j<=i;j++)
cin>>dp[i][j];
for(i=2;i<=30;i++)
for(j=1;j<=i;j++)
dp[i][j]+=(dp[i-1][j-1]+dp[i-1][j])/2.0;
Max=Min=dp[30][1];
for(i=2;i<=30;i++)
if(dp[30][i]>Max)
Max=dp[30][i];
else if(dp[30][i]<Min)
Min=dp[30][i];
printf("%lf\n",2086458231.0/Min*Max);
return 0;
}