首页 > 其他分享 >杭电2086 A=? 与整数与浮点数是否相等

杭电2086 A=? 与整数与浮点数是否相等

时间:2023-02-06 21:06:38浏览次数:37  
标签:A1 Ai 浮点数 2086 杭电 A0 C2 C1 sum


A1 = ?

Problem Description
有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, …. n).
若给出A0, An+1, 和 C1, C2, …..Cn.
请编程计算A1 = ?

Input
输入包括多个测试实例。
对于每个实例,首先是一个正整数n,(n <= 3000); 然后是2个数a0, an+1.接下来的n行每行有一个数ci(i = 1, ….n);输入以文件结束符结束。

Output
对于每个测试实例,用一行输出所求得的a1(保留2位小数).

Sample Input
1
50.00
25.00
10.00
2
50.00
25.00
10.00
20.00

Sample Output
27.50
15.00

代码:

推理:
根据方程: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式

将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)* C2 - ……..2 / (n + 1)* Cn-1。

# include <iostream>
# include <cstdio>

using namespace std;
int main(){

int n,i,j;
double a[2],b[50000],k;

while(cin>>n){
cin>>a[0]>>a[1];
for(i=0;i<n;i++){
cin>>b[i];
}

double sum = 0;
sum = 1.0*n/(n+1)*a[0] + 1.0/(n+1)*a[1];

k = 1.0*n*2;
for(j=0;j<n;j++){
sum -= k/(n+1)*b[j];
k-=2.0;
}

printf("%.2lf\n",sum);
}

return 0;
}
//浮点数与整形的是否相等的方法:
Int a;
Float f;
If(a*a==f*f){
true;
}else{
False
}


标签:A1,Ai,浮点数,2086,杭电,A0,C2,C1,sum
From: https://blog.51cto.com/u_15955675/6040493

相关文章

  • 杭电2084
    数塔在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经......
  • 杭电1171
    BigEventinHDUProblemDescriptionNowadays,weallknowthatComputerCollegeisthebiggestdepartmentinHDU.But,maybeyoudon’tknowthatComputerColl......
  • 杭电1339
    ASimpleTaskProblemDescriptionGivenapositiveintegernandtheoddintegeroandthenonnegativeintegerpsuchthatn=o2^p.ExampleForn=24,o=3and......
  • 杭电1335-任意进制的转换
    BasicallySpeaking​​http://acm.hdu.edu.cn/showproblem.php?pid=1335​​ProblemDescriptionTheReallyNeatoCalculatorCompany,Inc.hasrecentlyhiredyourt......
  • 杭电1407--暴力与优化
    测试你是否和LTC水平一样高ProblemDescription大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上!你的任务是:计算方程x^2+y^2+z^2......
  • 杭电1114--完全背包
    Piggy-BankProblemDescriptionBeforeACMcandoanything,abudgetmustbepreparedandthenecessaryfinancialsupportobtained.Themainincomeforthisacti......
  • 杭电1266--数的倒叙
    ReverseNumberProblemDescriptionWelcometo2006’4computercollegeprogrammingcontest!Specially,Igivemybestregardstoallfreshmen!Youarethefuture......
  • 杭电1282-回文
    回文数猜想ProblemDescription一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。任取一个正整数,如果不是回文数,将该数与他的......
  • 杭电2602---01背包
    骨收集器​​http://acm.hdu.edu.cn/showproblem.php?pid=2602​​问题描述许多年前,在泰迪的家乡有一个叫“拾骨者”的人。这个人喜欢收集不同的骨头,比如狗,牛,他还去了坟......
  • 杭电1248-背包
    院大学生程序设计竞赛(新生为主)寒冰王座TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):13570AcceptedSubm......