当前位置:编程学习 > C#/ASP.NET >>

求一求和公式算法

Ci*(1+p)^(n-1)+Ci*(1+p)^(n-2) +Ci*(1+p)^(n-3)+...+Ci*(1+p)^(1-1)  的和     
其中Ci=100,p=0.05   n= 从1到10 --------------------编程问答--------------------
float FUN(float Ci,float p,int n)
{
float sum=0;
float tempSum=0;
//计算n个(1+p)^(n-1)
for(int i=n-1;i>0;i--)
{
    tempSum =1+p;
   //计算(1+p)^(n-1)
   for(int j=i;i>0;j--)
   {
         tempSum*=tempSum;    
   }
   //累加
   sum+=tempSum;
}

  //完成
   return sum*Ci

} --------------------编程问答-------------------- 这个不是等比数量的吗?
Ci*(1+p)^(n-1)+Ci*(1+p)^(n-2) +Ci*(1+p)^(n-3)+...+Ci*(1+p)^(1-1)  的和

比例系数是(1+p)  最后乘以变量Ci就是结果了

用等比数列公式 --------------------编程问答-------------------- 这里的关键是等比数列求和的公式,把合式转换一下,把Ci提出来,里面就是一个等比的和,应用等比求和公式可以得出等比数列的合式结果为:((1+p)^n-1)/p,然后再乘以Ci就可以了,程序很简单,如下

using System;
class cal
{
static int Ci=100;
static double p=0.05;
static void Main()
{
for(int i=1;i<=10;i++)
{

Console.WriteLine(Ci*(Math.Pow((1+p),i)-1)/p);
}
}
} --------------------编程问答--------------------  public double getSum()
    {
        double sum = 0;
        double Ci = 100;
        double p = 0.05;
        for (int i = 1; i <= 10; i++)
        {
            sum = +Ci * (1 + p) * (i - 1) + Ci * (1 + p) * (1 - 1);
        }
        return sum;
    } --------------------编程问答-------------------- 谢谢,如果是Ci每次都是不定项呢 --------------------编程问答--------------------
引用 3 楼 hangang7403 的回复:
这里的关键是等比数列求和的公式,把合式转换一下,把Ci提出来,里面就是一个等比的和,应用等比求和公式可以得出等比数列的合式结果为:((1+p)^n-1)/p,然后再乘以Ci就可以了,程序很简单,如下

using System;
class cal
{
static int Ci=100;
static double p=0.05;
static void Main()
{
for(int i=1;i <=10;i++)
{

Console.WriteLine(Ci*(Math.Pow((1+p),i)-1)/p);
}
}
}


错了~~!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,