编了一个欧式期权的二叉树程序,检查感觉没什么错啊,但就是不输出矩阵,求大佬指导
//
#include <cmath>
#include <iostream>
#include<vector>
#include <cstdlib>
#include<stdlib.h>
#include<math.h>
using namespace std;
void inputs(double &r, double &s0, double &k, double &u, double &d, int &T)
{
cout << "Input interest rate :" << endl;
cin >> r;
cout << "Input periods:" << endl;
cin >> T;
cout << "Input current stock price:" << endl;
cin >> s0;
cout << "Input strike price:" << endl;
cin >> k;
cout << "Input u:" << endl;
cin >> u;
cout << "Input d:" << endl;
cin >> d;
}
double multiply(double x, int n)
{
double a = 1;
if (n == 0)
{
return(a);
}
else
{
while (a >= 1)
{
a = a * x;
n = n - 1;
}
return(a);
}
}
int main()
{
double r, s0, k, u, d;
int T;
inputs(r, s0, k, u, d, T);
vector< vector<double> > Matrix(T + 1);
for (int i = 0; i < T + 1; i++)
{
Matrix[i].resize(2 ^ T);
}
for (int i = 0; i < T; i++)
{
for (int j = 0; j < (2 ^ i); j++)
{
Matrix[i][j] = s0 * multiply(u, (2 ^ i) - j)*multiply(d, j);
}
}
for (int i = 0; i < (int)Matrix.size(); i++)
{
for (int j = 0; j < (int)Matrix[i].size(); j++)
{
cout << Matrix[i][j] << " ";
}
cout << endl;
}
}