C语言中p=(1 r) n,如何计算p=c/(1+r)+c/(1+r)*(1+r)+........+c/(1+r)的n次方+m/(1+r)的n次方
littleOStar
/*
*?計算?p?=?c/(1+r)?+?c/(1+r)*(1+r)?+?……?c/(1+r)的n次方,?n?暫定為50
*
*?<1>假設??t?=?(1+r)
*?結果?p?=?c/t?+?c/t*t?+?……?+?c/t的50次方
*
*?<2>提取出c
*?結果?p?=?c?*?(1/t?+?1/t*t?+?……?+?1/t的50次方)
*
*?<3>假設??x?=?(1/t)??==>??x?=?1/(1+r)
*?結果?p?=?c?*?(x?+?x*x?+?……?+?x的50次方)
*
*?<4>簡單分析下
*?只需計算?(x?+?x*x?+?……?+?x的50次方)
*
*?x
*?=?x//?n=1的情況
*
*?x?+?x*x
*?=?x*(1?+?x)//?n=2的情況
*
*?x?+?x*x?+?x*x*x
*?=?x*(1?+?x?+?x*x)
*?=?x*(1?+?x*(1?+?x))//?n=3的情況
*
*?x?+?x*x?+?x*x*x?+?x*x*x*x
*?=?x*(1?+?x?+?x*x?+?x*x*x)
*?=?x*(1?+?x*(1?+?x?+?x*x))
*?=?x*(1?+?x*(1?+?x*(1?+?x)))//?n=4的情況
*
*?//?總結:
*?//?n>=2時,?n的結果總是等于(n-1)的結果加上1后,?再乘以x
*//?n=50,?則需要計算?50-2=48?次
*
*/
double?r?=?4;?//?假設?r?=?4
double?x?=?1/(1+r);?//?方便計算的??x
double?c?=?10;?//?假設?c?=?10
int?n?=?50;?//?次方數,?多少次方
double?p?=?0;?//?最終結果
double?temp?=?x?+?x*x;?//?n=2時,
double?sum?=?0;?//?x的階乘結果
for?(int?i?=?1;?i?<=?(n-2);?i++)?{
sum?=?(temp?+?1)*x;
}
p?=?c?*?sum;
System.out.println("p="?+?p);// 抱歉哈, 我用Java寫的, 給你寫了大概的思路.
總結
以上是生活随笔為你收集整理的C语言中p=(1 r) n,如何计算p=c/(1+r)+c/(1+r)*(1+r)+........+c/(1+r)的n次方+m/(1+r)的n次方的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝特价版事业部java面试,含爱奇艺,
- 下一篇: 搭档之家|独立面对人生的态度