C语言转换阿拉伯数字为罗马数字代码片段
#include <iostream> #include <cstring> using namespace std; // prototype for function int dec_romana (int num); int main(int argc, char *argv[]) { int numerito; cout << "Por favor introduzca un numero entre 1 y 3999: "; cin >> numerito; dec_romana( numerito ); system("PAUSE"); return EXIT_SUCCESS; } int dec_romana (int num) { int numeros[8] = {1,5,10,50,100,500,1000,5000},i,p; string letras[8] = {"I","V","X","L","C","D","M"},romano; if(num<=0) { cout << " Somos buenos, pero no magos." << endl; } else if(num<=3999) { while(num > 0) { i = 0; while(i < 7) { while(num >= numeros[i] && num < numeros[i+1]) { p = i%2; if(num >= numeros[i+1] - numeros[i-p]) { romano = romano + letras[i-p] + letras[i+1]; num = num-(numeros[i+1]-numeros[i-p]); } else { romano = romano + letras[i]; num = num-numeros[i]; } } i++; } } cout << romano << endl; } else { romano = "Fuera de rango."; cout << romano << endl; } }