Vấn đề 2: chuyển chữ la mã thành số:
Giả sử chuỗi nhập vào là input;
String Lama[]=[“”, “I”, “II”, “III”, “IV”, “V”, “VI”, “VII”, “VIII”, “IX”, “X”, “XX”, “XXX”, “XL”, “L”, “LX”, “LXX”, “LXXX”,”XC”, “C”, “CC”, “CCC”, “CD”, “D”, “DC”, “DCC”, “DCCC”, “CM”, “M”, “MM”, “MMM”]
int number[0, 1, 2, 3, 4, 5, 6 , 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000, 3000 ]
Kiểm tra định dạng số la mã.
for(int i=0; i<input.length(); i++){
if(input[i]==’I’||input[i]==’V’||input[i]=’X’...){
kiểm tra trong chuỗi string không có ký tự lạ ngoài chữ số la mã
}
else{
kiểm tra thấy tồn tại chữ ngoài chữ số la mã;
}
}
int num=0;
while(input==””){
for(int i=input.length()-1; i>=0; i--)
{
string save=input.substr(0,i);
for(int j=0; j< Lama.count();j++){
if(save.equal(Lama[i])){
num=num+number[j];
input=input substr(i+1, input.length()-(i+1));
}
}
}
}
boolean isLama=true;
string toLama= num -> la mã (thực thi chuyển đổi number sang số la mã)
if(toLama.equal(input)){
số la mã nhập vào là đúng in ra num;
}
else{
số la mã nhập sai báo lại cho người dùng là đã nhập sai số la mã. Số la mã này không tồn tại
}
Cái này chắc là ổn
|