求一个 阿拉伯,罗马数字转换c++程序 的流程图
来源:百度知道 编辑:UC知道 时间:2024/05/17 23:59:19
#include <iostream>
using namespace std;
int arr1[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string arr2[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
string covert2Roman(int n)
{
string s;
int i=0;
while(n)
{
if(n>=arr1[i])
{
n-=arr1[i];
s+=arr2[i];
}
else
{
i++;
}
}
return s;
}
int main()
{
int n;
while(cin>>n)
{
cout<<covert2Roman(n)<<endl;
}
}
谢谢
using namespace std;
int arr1[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string arr2[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
string covert2Roman(int n)
{
string s;
int i=0;
while(n)
{
if(n>=arr1[i])
{
n-=arr1[i];
s+=arr2[i];
}
else
{
i++;
}
}
return s;
}
int main()
{
int n;
while(cin>>n)
{
cout<<covert2Roman(n)<<endl;
}
}
谢谢
传图了
汉一个,效率太差了吧?还要搜索一遍,直接对应查找到值返回就可以了。
class Convers
{
private:
typedef map<int,string> RomanMap;
typedef RomanMap::iterator RomanItor;
RomanMap romanmap;
RomanItor romanite;
public:
Convers();
~Convers();
string ConverRoma(int index);
}
构造函数里初始化常量的map表,析构函数里面将表清空。
string Convers::ConverRoma(int index)
{
try