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
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;
}
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
Biologie,
8 ani în urmă
Franceza,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Biologie,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă