usaco preface

原创 2012年03月21日 23:08:05

题目很简单,这种题做起来也不会错,不过做法很搓,代码很长。

/*
ID: stormdp1
LANG: C++
TASK: preface
*/
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int i, v, x;
int l, c, d;
int m;

void Cal(int n)
{
    if(n / 1000 > 0) {
        m += n / 1000;
        n %= 1000;
    }
    if(n / 100 > 0) {
        if(n / 100 <= 3) {
            c += n / 100;
        }
        else if(n / 100 <= 8) {
            d += 1;
            c += abs(n / 100 - 5);
        }
        else {
            m++;
            c++;
        }
        n %= 100;
    }
    if(n / 10 > 0) {
        if(n / 10 <= 3) {
            x += n / 10;
        }
        else if(n / 10 <= 8) {
            l += 1;
            x += abs(n / 10 - 5);
        }
        else {
            c++;
            x++;
        }
        n %= 10;
    }
    if(n > 0) {
        if(n <= 3) {
            i += n;
        }
        else if(n <= 8) {
            v += 1;
            i += abs(n - 5);
        }
        else {
            x++;
            i += 1;
        }
    }
}

int main()
{
    int num;
    
    freopen("preface.in", "rb", stdin);
    freopen("preface.out", "wb", stdout);
    while(scanf("%d", &num) != EOF) {
        i = v = x = 0;
        l = c = d = 0;
        m = 0;
        
        for(int j = 1; j <= num; j++)
            Cal(j);
        
        if(i)
            printf("I %d\n", i);
        if(v)
            printf("V %d\n", v);
        if(x)
            printf("X %d\n", x);
        if(l)
            printf("L %d\n", l);
        if(c)
            printf("C %d\n", c);
        if(d)
            printf("D %d\n", d);
        if(m)
            printf("M %d\n", m);        
    }
    
    fclose(stdin);
    fclose(stdout);
    return 0;
}       

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

USACO Preface Numbering

我很不争气的用了最简单的枚举,觉得自己在对照string数组分析字母的函数处理上还是不错滴 /* ID: wangxin12 PROG: preface LANG: C++ */ #include...

USACO 2.2.1 Preface Numbering

一.题目描述 A certain book's prefaces are numbered in upper case Roman numerals. Traditional Roman numer...
  • lhyer
  • lhyer
  • 2015-08-05 16:14
  • 146

【哈希】USACO-cha2-sec2.2 Preface Numbering

Preface Numbering A certain book's prefaces are numbered in upper case Roman numerals. Traditiona...

USACO:2.2.1 Preface Numbering 序言页码

USACO:2.2.1 Preface Numbering 序言页码 一、题目描述 ★Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数...
  • E_pen
  • E_pen
  • 2015-05-31 16:26
  • 1179

USACO 2.2 Preface Numbering

这道题让我想到了之前Chapter 1的计算星期五的那道题。 罗马数字的书写规律见罗马数字。在我的理解中,罗马数字就是十进制的复杂版,每一个位数上的数字单独转化成一组字母,这样罗马数字的书写就完成了。...

USACO 2.2.1 Preface Numbering

枚举秒过。 /* ID:szwjcch971 TASK:preface LANG:C++ */ #include "stdio.h" #include "string.h" char alphabe...

[USACO 2.2.1] Preface Numbering

[题目描述] Preface Numbering 序言页码 一类书的序言是以罗马数字标页码的。传统罗马数字用单个字母表示特定的数值,一下是标准数字表: I 1 L 50 M 1000 V...

USACO Section 2.2 Preface Numbering

题目原文 Preface Numbering A certain book's prefaces are numbered in upper case Roman numerals. Tr...

【乱搞】USACO-cha1-sec1.3 Preface Numbering

Combination Lock Farmer John's cows keep escaping from his farm and causing mischief. To try an...

USACO Section 2.2 Preface Numbering

/* ID: lucien23 PROG: preface LANG: C++ */ #include #include #include #include using namespace ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)