👤

Am rezolvat problema https://www.pbinfo.ro/?pagina=probleme&id=946 cu urmatorul cod dar am primit doar 40 de puncte. Imi poate spune cineva pentru care cazuri nu functioneaza bine ?

#include
#include
#include

using namespace std;
long long int n,x,y,k,i;

int main()
{
cin>>n;
int v[100];
k=1;
while (n>0)
{
x=n%100;
switch (x)
{
case 0:
v[k]=0;
break;
case 1:
v[k]=1;
break;
case 10:
v[k]=2;
break;
case 11:
v[k]=3;
break;
}
n=n/100;
k++;
}
x=0;
for (i=k-1;i>=1;i--)
{
cout< }
cout< return 0;
}


Răspuns :

Răspuns:

#include <iostream>

#include <cstring>

using namespace std;

char binar[100], ch;

int p[51], i, n, k=-1, inc=0;

int main()

{

   cin >> binar;

   n=strlen(binar);

   if (n%2==1) { ++k; p[k]=1; ++inc;}

   for (i=inc; i<n-1; i+=2 )

   {

       if (binar[i]=='0' && binar[i+1]=='0') { ++k; p[k]=0;}

       if (binar[i]=='0' && binar[i+1]=='1') { ++k; p[k]=1;}

       if (binar[i]=='1' && binar[i+1]=='0') { ++k; p[k]=2;}

       if (binar[i]=='1' && binar[i+1]=='1') { ++k; p[k]=3;}

   }

   for (i=0; i<=k; ++i)

       cout << p[i];

}

Explicație:

numarul l-am citit ca un string, împart numărul în perechi de biţi

00 corespunde 0 in baza 4

01 corespunde 1 în baza 4

10 corespunde 2 în baza 4

11 corespunde 3 în baza 4

parcurg şirul binar, creez cifrele din baza 4 şi le plasez în vectorul p

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


ID Learners: Alte intrebari