1 回答

littleOStar
TA贡献28条经验 获得超4个赞
/* * 计算 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写的, 给你写了大概的思路.
- 1 回答
- 0 关注
- 1828 浏览
添加回答
举报
0/150
提交
取消