zoukankan      html  css  js  c++  java
  • HDU 2352 Verdis Quo

    罗马数字转化为十进制的值

    题目非常的长

    提取有效信息

    并且介绍很多规则 但是事实上有用的信息就是如何加 

    什么时候减 当当前字母小于下一个字母时 减去当前字母的值

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 #define READ() freopen("in.txt", "r", stdin);
     5 
     6 using namespace std;
     7 
     8 int Map(char ch)
     9 {
    10     int n;
    11     switch(ch)
    12     {
    13         case 'I': n = 1;break;
    14         case 'V': n = 5;break;
    15         case 'X': n = 10; break;
    16         case 'L': n = 50; break;
    17         case 'C': n = 100; break;
    18         case 'D': n = 500; break;
    19         case 'M': n = 1000; break;
    20         default : n = 0;break;
    21     }
    22     return n;
    23 }
    24 int main()
    25 {
    26     int T;
    27     char in[128];
    28     scanf("%d", &T);
    29     getchar();
    30     while (T--)
    31     {
    32         gets(in);
    33         int ans = 0;
    34         int len = strlen(in);
    35         char pre, nxt;
    36         for (int i = 0; i < len; i++)
    37         {
    38             pre = in[i];
    39             if(i < len-1) nxt = in[i+1];
    40             else nxt = ' ';
    41             if (Map(pre) >= Map(nxt)) ans+= Map(pre);
    42             else ans -= Map(pre);
    43         }
    44         printf("%d
    ", ans);
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    程序由多个文件组成时、 头文件
    c++ 数组,变量,指针,引用, 初始化,赋值
    linux 远程装机
    linux中firewall与iptables防火墙服务
    linu samba服务
    linux 中iscsi服务
    Linux中apache服务
    linux dns高速缓存
    linux 网络配置
    linux 数据库管理
  • 原文地址:https://www.cnblogs.com/oscar-cnblogs/p/6572547.html
Copyright © 2011-2022 走看看