Дистанционная подготовка: компилятор на c++
Re: компилятор на c++
от Peter Cherepanov - Воскресенье 30 Декабрь 2018, 07:25
  В вашей программе нужно исправить несколько ошибок. Вообще, для такой простой задачи не нужен С++, рекурсия, строки и операции с ними. Читайте символы по одному, пока не кончатся и обрабатывайте их. Язык С придумали именно для таких задач.


#include <iostream>
#include <cmath>
using namespace std;
long long int q(string n,long long int i,long long int q2)
{
int y;

    if(q2<n.size())
    {
        y=(int)n[n.size()-q2-1]-48; // - '0' is better

        i=i+y*pow(2,q2);    // 1<<q2 is better
        return q(n,i,q2+1); // you need 'return' here
    }
    else { return i;}
}
int main()
{
    string N;
    long long int  i=0,q2=0;
    getline(cin,N);
    if(N[0]=='-') {N.erase(0,1); cout<<"-";}
    cout<<q(N,i,q2);
    return 0; // the function should return 0
}