求一求和公式算法
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每次都是不定项呢 --------------------编程问答--------------------
错了~~!
补充:.NET技术 , C#