数据
很简单的一道题,却做的一无是处。
总的来说,还是对题意没有把握清楚,我在最后的结果中没有找到题目中给的数据,所以一度怀疑是自己的思路错了。浪费了近50分钟的时间。看了题解才知道自己理解错了。题目的字眼很好,“推算出”而不是“计算出”。所以一定要细心再细心。
做这道题,有两个知识点没有把握好,正好复习了。
一个是sort函数(a,a+n);是不包含a[n]这个元素的。
第二个是cout有可能丢失精度,同样的double,用printf可以输出来,用cout就不行,这点要注意。
#include <bits/stdc++.h>
using namespace std;
double a[35][35];
int main()
{
for(int i=1;i<=29;i++)
{
for(int j=1;j<=i;j++)
{
cin>>a[i][j];
}
}
for(int i=2;i<=30;i++)
{
for(int j=1;j<=i;j++)
{
a[i][j]=a[i][j]+(a[i-1][j-1]+a[i-1][j])*0.5;
}
}
sort(a[30]+1,a[30]+30+1);
double minx = a[30][1];
printf("%lf\n",2086458231/minx*a[30][30]);
}