⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taohui.cpp

📁 这是外汇活动中的一种 可以从多种货币的汇率差异中
💻 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 + -