为了账号安全,请及时绑定邮箱和手机立即绑定

如何计算p=c/(1+r)+c/(1+r)*(1+r)+........+c/(1+r)的n次方+m/(1+r)的n次方

如何计算p=c/(1+r)+c/(1+r)*(1+r)+........+c/(1+r)的n次方+m/(1+r)的n次方

C
qq_梦总是美好的_0 2016-03-19 16:19:04
查看完整描述

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 反对 回复 2016-03-19
  • 1 回答
  • 0 关注
  • 1828 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号