Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:98836

签 名:

2024终究会过去,期待2025!

等  级
排  名 8
经  验 27865
参赛次数 67
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:

用数学方法,解方程,两边消元,得到最后的公式:

    a[1] = ( n*a[0] + a[n+1] - 2*sum ) / (n+1)

这里的sum=c[1]+(c[1]+c[2])+(c[1]+c[2]+c[3])+(c[1]+c[2]+c[3]+c[4]).....+(c[1]+c[2]+..+c[n])


参考代码:

#include <stdio.h>
#include <malloc.h>
int main()
{
    double *pc;
    int  n,i,j;
    double a0,an1,a1,sum;   //a0代表a[0],an1代表a[n+1],a1代表a[1] 
    while(scanf("%d",&n)!=EOF )
    {
        pc=(double *) malloc((n+1) * sizeof(double) ); //定义数组c(动态空间) 
        scanf("%lf%lf", &a0,&an1);   //输入a[0],  a[n+1] 
    	for (i=1;i<=n;i++)    //输入c[1]到c[n]
       	 	scanf( "%lf", &pc[i] );
       	sum=0;
	    for(i=1;i<=n;i++)    //求推导公式中的sum
	    {
	        for(j=1;j<=i;j++)
	            sum=sum+pc[j];
	    }
        a1 = (n * a0 + an1 - 2 * sum ) / (n + 1);  //求a1
    	printf( "%.2lf\n", a1 ); 
    } 
    return(0);
}


 

0.0分

5 人评分

  评论区

  • «
  • »