📄 taohui.cpp
字号:
#include "iostream"
#include "algorithm"
#include "fstream" //从外部读取文件
#include "vector"
using namespace std;
//两个全局变量
float num=1; //初始值设为1
vector <int> path; //向量path用来存储套汇成功的路径
void taohui(float **Matrix,int number,int *record)
{
int i;
for(i=0;i<number;i++)
{
float temp;
if(record[i]<0) //当某一货币加入路径以后,被标上-1。将不再考虑它
continue; //一经加入,i++
if(path.size()!= 0)
{
num*=Matrix[path.back()][i]; //num为暂时成功的汇率连乘值
temp=num*Matrix[i][path.front()]; //记录最终走完环路是的总的套汇值
}
record[i]=-1; //走过路径的标记
path.push_back(i); //走过该货币结点后将其加至队列path的尾部
if(temp>1) //套汇成功,则输出
{
cout<<"\n套汇路径为:";
copy(path.begin(),path.end(),ostream_iterator<int>(cout,"->"));
cout<<path.front();
cout<<"\n一元变成:"<<temp<<endl;
}
taohui(Matrix,number,record); //递归调用
record[i]=1;
path.pop_back();
if(path.size()!= 0)
num=num/Matrix[path.back()][i];
}
}
void main()
{
cout << "***********************************************************************" << endl;
cout << "***********************************************************************" << endl;
cout << "************ Welcome to Use My Program!!! ************" << endl;
cout << "************ Please follow the instructions ************" << endl;
cout << "***********************************************************************" << endl;
cout << "***********************************************************************" << endl << endl;
//下面这个语句用于从外部读取存有汇率信息的文件,注:文件应该与本程序文件在同一个目录下,文件名为:currency.txt
ifstream ifs("currency.txt"); //从记事本文件currency.txt里调入汇率的矩阵
int number; //number*number矩阵
ifs>>number; //记事本currency.txt中第一个数为货币个数
float **Matrix= new float *[number]; //动态申请内存空间
for(int i=0;i<number;i++)
{
Matrix[i]=new float [number]; //动态申请内存空间
}
int m,n;
for (m=0;m<number;m++)
for(n=0;n<number;n++)
ifs>>Matrix[m][n];
ifs.close();
int *record=new int[number]; //申请记录数组record
int j;
for(j=0;j<number;j++)
record[j]=1; //初始化为未访问过
taohui(Matrix,number,record); //测试套汇
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -