Informatică, întrebare adresată de BlU3G0D, 9 ani în urmă

Pe planeta Marte, marţienii folosesc în calculele aritmetice doar cifrele 0, 1, 2 şi 3. Ei au inventat un nou sistem binar de numeraţie. Pornind de la numărul 23, ei generează numere binare speciale aplicând de un număr finit de ori regulile din tabelul de mai jos:

Cifra 2 se poate înlocui cu succesiunea: 12
Cifra 3 se poate înlocui cu succesiunea: 03
Cifra 2 se poate înlocui cu succesiunea: 01
Cifra 3 se poate înlocui cu succesiunea: 10
Marţienii au început să genereze un astfel de număr, aplicând succesiv (în această ordine): de n ori regula 1); de k ori regula 2); o singură dată regula 3) şi o singură dată regula 4). Nefiind atenţi, ei nu au reuşit să ducă la capăt generarea şi au nevoie de ajutor. Ajutaţi-i să genereze numărul binar dorit.

Cerinţa
Scrieţi un program care citeşte numerele naturale nenule n şi k şi care afişează numărul binar obţinut în urma aplicării succesive a regulilor cerute de marţieni.

Date de intrare
Programul citește de la tastatură numerele n k.

Date de ieșire
Programul va afișa pe ecran numărul cerut.

Restricții și precizări
0<n,k<=1000000


Exemplu
Intrare

5 4
Ieșire

1111101000010

-------------------------------

Eu am facut asta si am primit doar 10pct(stiu ca arata ca naiba si mai poate fi optimizata...) - *Vezi Atasamente*

P.S: Am nevoie pana la ora 23:50. 

Anexe:

Răspunsuri la întrebare

Răspuns de express
3
#include <bits/stdc++.h>
using namespace std;
int n, k, i, j;
int main()
{
   cin >> n >> k;
   for(i = 1; i <= n; i ++)
    cout << 1;
   cout << 0 << 1;
   for(j = 1; j <= k; j ++)
    cout << 0;
   cout << 10;
   return 0;
}

Alte întrebări interesante