Problem 11. A1=?

Problem 11.  A1=

题目简述:

    有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, .... n).若给出A0, An+1, 和 C1, C2, .....Cn.

请编程计算A1 = ?并保留两位小数

解题思路:

根据方程:Ai=(Ai-1+Ai+1)/2-Ci 

可以写出:A1=1/2*A0+1/2*A2-C1;      1式

        A2=1/2*A1+1/2*A3-C2;      2式

将1式代入2式,得到:

A2=1/3*A0+2/3*A3-2/3*C1-4/3*C2;

将3式代入1式,得到:

A1=2/3*A0+1/3*A3-4/3*C1-2/3*C2.

...以此类推

可以得到一个通式:对于An+1。

A1=n/(n+1)*A0+1/(n+1)*An+1-2*n/(n+1)*C1-(2*n-2)/ (n+1) 1*C2- ...2/(n+1)*Cn-1

细节处理:

保留两位小数C++中应用cout<<fixed<<setprecision(2)<<a[1]<<endl;使用时还需加上一个头文件#include<iomanip>

源代码:

#include<iostream>
#include<iomanip>
using namespace std;
double a[3010],c[3010];
int main()
{
    int n,sum;
    while(cin>>n)
    {
        sum=0;
        cin>>a[0];
        cin>>a[n+1];
        for(int i=1;i<=n;i++)
        {
            cin>>c[i];
            sum+=(n+1-i)*c[i];
        }
        a[1]=(n*a[0]+a[n+1]-2*sum)/(n+1);
        cout<<fixed<<setprecision(2)<<a[1]<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43397186/article/details/85769896
a1
今日推荐