A

Z góry uprzedzam, że przedstawiony tutaj sposób nie przejdzie na Athinie, gdyż Pan Duraj z pewnością odbije takie zadanie ręcznie, użyjemy w nim bowiem sposoby "sprytnego" - żeby się za dużo nie naklepać.
Celem tego tematu jest pokazanie szybkiego sposoby na tego typu problemu osobom, które go jeszcze nie znają.

- Co poznamy?? Funkcję itoa()

No to lecimy, kodzik wygląda tak:

#include <iostream>
 
using namespace std;
 
int main()
{
    int z, n;
    char tab[30];
    cin >> z;
    for (int i=0; i<z; i++)
    {
        cin >> n;
        itoa(n, tab, 2);
        cout << tab << endl;
    }
}

Jak to działa?? Ano mamy funkcję itoa() - ang. integer to ascii - zamiana liczby na znaki. Jak ona działa?? Potrzebna nam liczba, tablica char to której zapiszemy zamienioną liczbę i tyle.

Używamy tego w ten sposób:
itoa(liczba_ktora_zamieniamy, tablica_do_ktorej_zapiszemy_zamienioną_liczbę, system_liczbowy);

Tak więc itoa(n, tab, 5) zapisze liczbę n do tablicy tab w systemie piątkowym ;)

[Lech Duraj] O ile mi wiadomo, ten kod dostaje CME - funkcji itoa nie ma w standardzie C++. W szczególności nie zna jej kompilator Athiny.

Wzorcówka

Tak wyglądała wzorcówka do tego zadania:

#include <cstdio>

void binary(int x)
{
  if (x==0) return;
  binary(x/2);
  printf("%d",x%2);
}

int main()
{
  int TT,n;
  scanf("%d",&TT);
  while(TT--)
  {
    scanf("%d",&n);
    if (n==0)
       printf("0\n");
    else
    {
      binary(n);
      printf("\n");
    }
  }
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License