I'm doing some tasks on codewars website, but I'm completely stacked. I should write a class and test it like this:
// TODO: Replace examples and use by writing your own tests
Describe(any_group_name_you_want)
{
It(should_do_something)
{
Assert::That("Instead I ran tests without changing anything and thats why this is failing", Equals("I added my own tests for TDD based development"));
}
};
I spend so many hours) here my class...
#include <string>
using namespace std;
class RomanNumerals
{
public:
RomanNumerals()=default;
string toRoman(int number)
{
string result{};
int source{number};
int temp{};
temp=source/1000;
for(int i{};i<temp;++i)result+='M';
source%=1000;
temp=source/100;
if(temp<1)temp;
else if(temp<4)for(int i{};i<temp;++i)result+='C';
else if(temp<5)result+="CD";
else if(temp<6)result+='D';
else if(temp<9){result+='D';for(int i{};i<temp-5;++i)result+='C';}
else {result+="CM";}
source%=100;
temp=source/10;
if(temp<1)temp;
else if(temp<4)for(int i{};i<temp;++i)result+='X';
else if(temp<5)result+="XL";
else if(temp<6)result+='L';
else if(temp<9){result+='L';for(int i{};i<temp-5;++i)result+='X';}
else {result+="XC";}
source%=10;
temp=source;
if(temp<1)temp;
else if(temp<4)for(int i{};i<temp;++i)result+='I';
else if(temp<5)result+="IV";
else if(temp<6)result+='V';
else if(temp<9){result+='V';for(int i{};i<temp-5;++i)result+='I';}
else {result+="IX";}
return result;
}
int fromRoman(string str)
{
string temp{"MCCXXIX"};
int result{};
vector<string>searchArr{"M","CM","DCCC","DCC","DC","D","CD","CCC","CC","C",
"XC","LXXX","LXX","LX","L","XL","XXX","XX","X",
"IX","VIII","VII","VI","V","IV","III","II","I"};
vector<string>temp1;
for(auto i:searchArr)
{
auto found=temp.find(i);
if(found!=std::string::npos)
{
temp1.push_back(i);
temp.erase(0,i.length());
}
}
for(auto i:temp1)
{
if(i=="M")
result+=1000;
else if(i=="CM")
result+=900;
else if(i=="DCCC")
result+=800;
else if(i=="DCC")
result+=700;
else if(i=="DC")
result+=600;
else if(i=="D")
result+=500;
else if(i=="CD")
result+=400;
else if(i=="CCC")
result+=300;
else if(i=="CC")
result+=200;
else if(i=="C")
result+=100;
else if(i=="XC")
result+=90;
else if(i=="LXXX")
result+=80;
else if(i=="LXX")
result+=70;
else if(i=="LX")
result+=60;
else if(i=="L")
result+=50;
else if(i=="XL")
result+=40;
else if(i=="XXX")
result+=30;
else if(i=="XX")
result+=20;
else if(i=="X")
result+=10;
else if(i=="IX")
result+=9;
else if(i=="VIII")
result+=8;
else if(i=="VII")
result+=7;
else if(i=="VI")
result+=6;
else if(i=="V")
result+=5;
else if(i=="IV")
result+=4;
else if(i=="III")
result+=3;
else if(i=="II")
result+=2;
else if(i=="I")
result+=1;
}
return result;
}
};
If you still here thank you! I just print here some text to pass to question to the system, because i have mostly code here, so site is not good about it....
Aucun commentaire:
Enregistrer un commentaire