2012年9月5日

UVa 344 - Roman Digititis


#include <stdio.h>

typedef struct Num Num;

struct Num {
  int i, v, x, l, c;
};

int main() {
  int i, n;
  Num num[101], ans[101];
  for (i = 0; i <= 100; i++) {
    n = i;
    if (n <= 49 && n >= 40) n += 20;
    if (n >= 90) n += 20;
    if (n % 10 == 4 || n % 10 == 9) n += 2;
    num[i].c = n / 100;
    n %= 100;
    num[i].l = n / 50;
    n %= 50;
    num[i].x = n / 10;
    n %= 10;
    num[i].v = n / 5;
    n %= 5;
    num[i].i = n;
  }
  ans[0].c = 0;
  ans[0].l = 0;
  ans[0].x = 0;
  ans[0].v = 0;
  ans[0].i = 0;
  for (i = 1; i <= 100; i++) {
    ans[i].c = num[i].c + ans[i - 1].c;
    ans[i].l = num[i].l + ans[i - 1].l;
    ans[i].x = num[i].x + ans[i - 1].x;
    ans[i].v = num[i].v + ans[i - 1].v;
    ans[i].i = num[i].i + ans[i - 1].i;
  }
  while (scanf("%d", &n) && n) {
    printf("%d:", n);
    printf(" %d i, %d v, %d x, %d l, %d c\n", ans[n].i, ans[n].v, ans[n].x, ans[n].l, ans[n].c);
  }
  return 0;
}

沒有留言:

張貼留言