UVA 10014 - Simple calculations(数学)

题目链接

难得的1A。想的时间有点长啊,精力集中不起来。

思路:本来是开始把  a1 a2 a3... an 全部用题目中的表达式给表示出来,想着肯定会全部消去吧,结果。。。还剩下个an,然后,没啥想法了。。想想,试试规律吧。把 n = 2 3 4 时候全部写出来了发现有规律啊。an 可以用a1和a0表示出来。。把an套到前一个推出来的公式去,然后,实现这个规律,又浪费一些时间。。。还好1A。

 1 #include <stdio.h>
 2 double c[5000];
 3 int main()
 4 {
 5     int i,j,t,m;
 6     double a0,an,sum1,sum2,ans;
 7     scanf("%d",&t);
 8     while(t--)
 9     {
10         sum1=sum2=0;
11         scanf("%d",&m);
12         scanf("%lf%lf",&a0,&an);
13         for(i = 1;i <= m;i ++)
14         {
15             scanf("%lf",&c[i]);
16             sum1 += c[i];
17         }
18         for(i = 1;i <= m;i ++)
19         {
20             sum2 += 2*(m - i)*c[i];
21         }
22         ans = m*a0 + an - 2*sum1 -sum2;
23         ans = ans/(m+1);
24         printf("%.2lf\n",ans);
25         if(t != 0)
26         printf("\n");
27     }
28     return 0;
29 }

 

 

posted @ 2012-05-29 20:15  Naix_x  阅读(247)  评论(0编辑  收藏  举报