#include #include using namespace std; const int dimReg = 100; typedef int Registru[dimReg]; void scrieRoman(int val) { if (val >= 4000) return; if (val >= 1000) { cout << "M"; val -= 1000; } if (val >= 1000) { cout << "M"; val -= 1000; } if (val >= 1000) { cout << "M"; val -= 1000; } if (val >= 900) { cout << "CM"; val -= 900; } if (val >= 500) { cout << "D"; val -= 500; } if (val >= 400) { cout << "CD"; val -= 400; } if (val >= 100) { cout << "C"; val -= 100; } if (val >= 100) { cout << "C"; val -= 100; } if (val >= 100) { cout << "C"; val -= 100; } if (val >= 90) { cout << "XC"; val -= 90; } if (val >= 50) { cout << "L"; val -= 50; } if (val >= 40) { cout << "XL"; val -= 40; } if (val >= 10) { cout << "X"; val -= 10; } if (val >= 10) { cout << "X"; val -= 10; } if (val >= 10) { cout << "X"; val -= 10; } if (val >= 9) { cout << "IX"; val -= 9; } if (val >= 5) { cout << "V"; val -= 5; } if (val >= 4) { cout << "IV"; val -= 4; } if (val >= 1) { cout << "I"; val -= 1; } if (val >= 1) { cout << "I"; val -= 1; } if (val >= 1) { cout << "I"; val -= 1; } cout << endl; return; } //int main() { // for (int n = 1; n < 4000; n++) { // cout << n << " "; // scrieRoman(n); // } // return 0; //} void numaraCu4cifre(int baza) { int contor = 0; for (int c3 = 0; c3 < baza; c3++) { for (int c2 = 0; c2 < baza; c2++) { for (int c1 = 0; c1 < baza; c1++) { for (int c0 = 0; c0 < baza; c0++) { cout << setw(3) << c3 << setw(3) << c2 << setw(3) << c1 << setw(3) << c0; cout << " = " << setw(4) << contor; contor++; //principiul numararii //int val = c0+c1*baza+c2*baza*baza+c3*baza*baza*baza; int val = c0 + baza * (c1 + baza * (c2 + baza * c3)); cout << " = " << setw(4) << val << endl; } } } } } void scrieReg(int nrCifre, Registru reg) { if (nrCifre > dimReg) nrCifre = dimReg; for (int i = nrCifre - 1; i >= 0; i--) { cout << setw(3) << reg[i]; } } void numaraCuNcifre(int N, int baza) { if (N > dimReg) N = dimReg; Registru reg = {}; bool avemDepasireRegistru = false; for (int contor = 0; !avemDepasireRegistru; contor++) { scrieReg(N, reg); cout << " = " << contor << endl; //incrementam registrul: bool avemTransport = true; for (int i = 0; i < N && avemTransport; i++) { reg[i]++; if (reg[i] == baza) { reg[i] = 0; } else { avemTransport = false; } } avemDepasireRegistru = avemTransport; } } int regToVal(Registru c, int baza) { int s = 0, p = 1; for (int i = 0; i < dimReg; i++) { s += c[i] * p; p *= baza; } return s; } void valToReg(int val, Registru c, int baza) { for (int i = 0; i < dimReg; i++) { c[i] = val % baza; val /= baza; } } //int main() { // Registru tab = { 2, 2, 3 }; // int b = 5; // int nrCifre = 6; // cout << "numarul "; // scrieReg(nrCifre, tab); // cout << " scris in baza " << b << endl; // int n = regToVal(tab, b); // cout << "are valoarea = " << n << endl << endl; // cout << "numarul n=" << n << " se scrie in baza " << b << " ca:" << endl; // valToReg(n, tab, b); // scrieReg(nrCifre, tab); // cout << endl; // return 0; //} void scrieRegHexal(int nrCifre, Registru reg) { if (nrCifre > dimReg) nrCifre = dimReg; for (int i = nrCifre - 1; i >= 0; i--) { switch (reg[i]) { case 10: cout << 'A'; break; case 11: cout << 'B'; break; case 12: cout << 'C'; break; case 13: cout << 'D'; break; case 14: cout << 'E'; break; case 15: cout << 'F'; break; default: cout << reg[i]; break; } } } int main() { Registru reg; for (int n = 0; n < 256; n++) { cout <