摘要:
题目大意:给出n个数,每相邻两个数求平均数,得到n-1个数,再求平均数,得到n-2个数,......一直到最后一个数,输出这个数。题目很简单,就是中间数据会比较大有点复杂,超过double的范围,而结果又比较小,这时候可以考虑只存储中间数据的log值,改乘除运算为对数的加减运算,然后对结果求幂即可,需要注意的一点是负数不能取对数,先提取负号。很容易得到:ans=sum(C(n-1,i)*a[i])/(2^(n-1)) , i=0~n-1;提前将c(n-1,i)的值求出,log_C存储对数:log_C[i]=log_C[i-1]+log10(n-i)-log10(i);由于无法将log(sum( 阅读全文