C/C++の宿題を片付けます 59代目

このエントリーをはてなブックマークに追加
767デフォルトの名無しさん
>>760
良い子も悪い子も真似しちゃ駄目w
#include<stdio.h>
void printR_(int n,char*a,char*b){
    if(!n)return;
    printR_(n/10,a+1,b+1);
    switch(n%10){
        case 0:break;
        case 3:putchar(*a);
        case 2:putchar(*a);
        case 1:putchar(*a);break;
        case 4:putchar(*a);
        case 5:putchar(*b);break;
        case 6:putchar(*b);putchar(*a);break;
        case 7:putchar(*b);putchar(*a);putchar(*a);break;
        case 8:putchar(*b);putchar(*a);putchar(*a);putchar(*a);break;
        case 9:putchar(*a);putchar(a[1]);break;
    }
}
void printR(int n){printR_(n,"IXCM","VLD");}
int main(void){
    int i;
    for(i=1;i<4000;++i){
        printf("%4d: ",i);
        printR(i);
        printf("\n");
    }
    return 0;
}