13.Roman To Integer

Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.

Example 1:

Input: "III"

Output: 3

Example 2:

Input: "IV"

Output: 4

Example 3:

Input: "IX"

Output: 9

Example 4:

Input: "LVIII"

Output: 58

Explanation: L = 50, V= 5, III = 3.

Example 5:

Input: "MCMXCIV"

Output: 1994

Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.



代码:

#include

using namespace std;

intgetInteger(charx){

    switch(x) {

        case'I':

            return1;

            break;

        case'V':

            return5;

            break;

        case'X':

            return10;

            break;

        case'L':

            return50;

            break;

        case'C':

            return100;

            break;

        case'D':

            return500;

            break;

        case'M':

            return1000;

            break;


        default:

            return0;

            break;

    }

}

intromanToInt(strings) {

    intlength=s.length();

    inttotal=0;

    for(inti=0;i

    {

        if(i+1==length)

        {

            total+=getInteger(s[i]);

        }

        else

        {

            if(getInteger(s[i]) //前数小于后数 需要减

            {

                total+=getInteger(s[i+1])-getInteger(s[i]);

                i++;

            }

            else

            {

                total+=getInteger(s[i]);

            }

        }

    }

    returntotal;

}

intmain(intargc,constchar* argv[]) {

    // insert code here...

    stringa;

    while(cin>>a)

    {

            cout<

    }

    cout << "Hello, World!\n";

    return 0;

}

你可能感兴趣的:(13.Roman To Integer)