用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 -.+C/(1+r)^(n-1) - (F+1)*n/(1+r)^n ·········用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 +.+C/(1+r)^(n-1) + (F+1)*n/(1+r)^n·······················// 13.cpp :Defines
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 03:01:56
用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 -.+C/(1+r)^(n-1) - (F+1)*n/(1+r)^n ·········用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 +.+C/(1+r)^(n-1) + (F+1)*n/(1+r)^n·······················// 13.cpp :Defines
用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 -.+C/(1+r)^(n-1) - (F+1)*n/(1+r)^n ·········
用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 +.+C/(1+r)^(n-1) + (F+1)*n/(1+r)^n
·······················
// 13.cpp :Defines the entry point for the console application.
//
#include "stdafx.h"
#include
#include
using namespace std;
double n,F,P,C,z;
double f(double r)
{
double s=F/(pow(1+r,n));
for(int i=n;i>0;i--)
s=s+C/(pow(1+r,i));
return s;
}
void main()
{
coutn;
coutF;
coutP;
coutC;
coutz;
double a=0,b=1;
double x=(a+b)/2;
while(abs(f(x)-P)>z)
{
x=(a+b)/2.0;
if(f(a)*f(x)
用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 -.+C/(1+r)^(n-1) - (F+1)*n/(1+r)^n ·········用c++二分法计算方程F=C/(1+r)^1+C/(1+r)^2 +.+C/(1+r)^(n-1) + (F+1)*n/(1+r)^n·······················// 13.cpp :Defines
你的程序在我电脑上可以运行啊
你输入:
n=2,F=3,P=4,C=5,Z=6,
运行出来的结果是r=0.5 .
虽然我没看你的程序的具体内容,但我觉得你的程序没问题(如果有问题可以注释到#include "stdafx.h"),你的问题是在输入n,F,P,C,Z时取值的问题.你尝试多取些值来试试吧,我觉得这是问题所在.