Przygotowuję się do matury, a w mojej miejscowości nie ma żadnego nauczyciela który jest egzaminatorem, więc postanowiłem zapytać Was. Treść zadanie:
Moje rozwiązanie:
#include <iostream>
using namespace std;
int main()
{
int d;
string bin;
cin >> d >> bin;
int x = 0;
if(bin[0] == '1')
{
for(int i = 1; i < bin.size(); i++)
{
bin[i] = (bin[i] == '0') ? '1' : '0';
}
}
for(int i = bin.size() - 1, n = 1; i > 0; i--, n*=2)
{
if(bin[i] == '1') x += n;
}
if(bin[0] == '1') x *= -1;
cout << x << endl;
}
O algorytm raczej jest ok, ale dziwi mnie treść. Tablica wejściowa jest indeksowana od 1 (WTF?) czy to znaczy, że ja również muszę stworzyć w moim programie tablicę i indeksować ją od 1 czy mogę tutaj bez problemu użyć stringa?