小编Aks*_*ant的帖子

在使用带有罗马字符“I”的字符串时,它给出 8 而不是 1。类似地,对于“III”,给出 24 而不是 3

包括像“IV”这样的字符串的其余部分尚未完成,但现在的问题是对于“I”,程序返回 8 而不是 1;

#include <bits/stdc++.h> //header file
using namespace std;
  
int romantoint(char str[],int &n)
{
    int total=0;
    unordered_map <char,int> m;
    m['I'] = 1;
    m['II'] = 2;
    m['III'] = 3;
    m['IV'] = 4;
    m['V'] = 5;
    m['VI'] = 6;
    m['VII'] = 7;
    m['VIII'] = 8;
    m['IX'] = 9;
    m['X'] = 10;

    for(int i=0;i<n;i++)
    {
      total = total+m[str[i]];
    }

    return total;
    
}




int main()
{
  char str[] = "I";
  int n = strlen(str);
  cout<<romantoint(str,n);
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11 c++17

-3
推荐指数
1
解决办法
63
查看次数

标签 统计

c++ ×1

c++11 ×1

c++17 ×1