2013 Multi-University Training Contest 5 k-th point

本文探讨了如何通过观察和推导,从一系列数学运算中找出规律,并将其应用于代码实现中。通过具体例子展示了如何将复杂的数学问题简化为程序解决的过程。

刚开始我也不知道怎么做,后来慢慢就推出来了……

对于样例

2 1 0,结果是2/3

2 2 0,结果是4/5

3 2 0,结果是6/7

3 2 1,结果是9/14=6/7*3/4

……

之后就会发现每一项都是d/(d+1);而d又是怎样来的呢?

上面的d分别是2*1;2*2;3*2,3*1……

所以规律就出来,哈哈……

看代码:

 

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<algorithm>
 4 #include<iomanip>
 5 #include<cmath>
 6 using namespace std;
 7 int main()
 8 {
 9     int t,n,p,k,i;
10     double ans;
11     cin>>t;
12     while(t--)
13     {
14         cin>>p>>n>>k;
15         ans=1.0;
16         for(i=n;i>=n-k;i--){
17             double an=1.0*p*i;
18             ans*=(an/(an+1));
19         }
20         printf("%.9lf\n",ans);
21     }
22     return 0;
23 }
View Code

 

 

 

转载于:https://www.cnblogs.com/xin-hua/p/3241837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值