牛牛对罗马数字很感兴趣,他想编写一个程序将罗马数字转换为整数。 罗马数字由七个不同的符号表示:I、V、X、L、C、D 和 M。 符号 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如,数字3用罗马数字表示为III,即三个I相加。数字12用罗马数字表示为XII,即X + II。数字27用罗马数字表示为XXVII,即XX + V + II。 罗马数字通常从左到右按从大到小的顺序书写。 需要注意数字4不是IIII,而是IV。因为1在5之前,所以要进行减法运算,得到4。同样的规则适用于数字9,表示为IX。总共有六种情况需要进行减法运算: I 可以放在 V(5)和 X(10)的前面,表示 4 和 9,其余情况类似。 现给定一个罗马数字,请将其转换为整数。

区块链毕设网qklbishe.com为您提供问题的解答

牛牛对罗马数字很感兴趣,他想编写一个程序将罗马数字转换为整数。

罗马数字由七个不同的符号表示:I、V、X、L、C、D 和 M。

符号 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

例如,数字3用罗马数字表示为III,即三个I相加。数字12用罗马数字表示为XII,即X + II。数字27用罗马数字表示为XXVII,即XX + V + II。
罗马数字通常从左到右按从大到小的顺序书写。
需要注意数字4不是IIII,而是IV。因为1在5之前,所以要进行减法运算,得到4。同样的规则适用于数字9,表示为IX。总共有六种情况需要进行减法运算:

I 可以放在 V(5)和 X(10)的前面,表示 4 和 9,其余情况类似。

现给定一个罗马数字,请将其转换为整数。

int romanToInt(char *s)
{
    // 用指针从开始遍历到最后,列出所有情况
    int p = 0;
    int sum = 0;
    while (p < strlen(s))
    {
        switch (s[p])
        {
        case ‘I’:
            if (s[p + 1] == ‘V’)
            {
                sum = sum + 4;
                p = p + 2;
            }
            else if (s[p + 1] == ‘X’)
            {
                sum = sum + 9;
                p = p + 2;
            }
            else
            {
                sum = sum + 1;
                p++;
            }
            break;
        case ‘V’:
            sum = sum + 5;
            p++;
            break;
        case ‘X’:
            if (s[p + 1] == ‘L’)
            {
                sum = sum + 40;
                p = p + 2;
            }
            else if (s[p + 1] == ‘C’)
            {
                sum = sum + 90;
                p = p + 2;
            }
            else
            {
                sum = sum + 10;
                p++;
            }
            break;
        case ‘L’:
            sum = sum + 50;
            p++;
            break;
        case ‘C’:
            if (s[p + 1] ==‘D’)
            {
                sum = sum + 400;
                p = p + 2;
            }
            else if (s[p + 1] == ‘M’)
            {
                sum = sum + 900;
                p = p + 2;
            }
            else
            {
                sum = sum + 100;
                p++;
            }
            break;
        case ‘D’:
            sum = sum + 500;
            p++;
            break;
        case ‘M’:
            sum = sum + 1000;
            p++;
            break;
        }
    }

    return sum;
}

12:41

以上就是关于问题牛牛对罗马数字很感兴趣,他想编写一个程序将罗马数字转换为整数。 罗马数字由七个不同的符号表示:I、V、X、L、C、D 和 M。 符号 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000 例如,数字3用罗马数字表示为III,即三个I相加。数字12用罗马数字表示为XII,即X + II。数字27用罗马数字表示为XXVII,即XX + V + II。 罗马数字通常从左到右按从大到小的顺序书写。 需要注意数字4不是IIII,而是IV。因为1在5之前,所以要进行减法运算,得到4。同样的规则适用于数字9,表示为IX。总共有六种情况需要进行减法运算: I 可以放在 V(5)和 X(10)的前面,表示 4 和 9,其余情况类似。 现给定一个罗马数字,请将其转换为整数。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 牛牛对罗马数字很感兴趣,他想编写一个程序将罗马数字转换为整数。 罗马数字由七个不同的符号表示:I、V、X、L、C、D 和 M。 符号 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如,数字3用罗马数字表示为III,即三个I相加。数字12用罗马数字表示为XII,即X + II。数字27用罗马数字表示为XXVII,即XX + V + II。 罗马数字通常从左到右按从大到小的顺序书写。 需要注意数字4不是IIII,而是IV。因为1在5之前,所以要进行减法运算,得到4。同样的规则适用于数字9,表示为IX。总共有六种情况需要进行减法运算: I 可以放在 V(5)和 X(10)的前面,表示 4 和 9,其余情况类似。 现给定一个罗马数字,请将其转换为整数。