Code:
#include <iostream>
#include <cstdlib>
using namespace std;
char LA;
char* str;
void R(int R_i, int& R_s);
void Digit(int& Digit_val);
void input_error();
char token()
{
return *str++;
}
void Num(int& Num_val)
{
int Digit_value, R_i, R_s;
Digit(Digit_value);
R_i = Digit_value;
R(R_i,R_s);
Num_val = R_s;
}
void R(int R_i, int& R_s)
{
int Digit_value, R1_i,R1_s;
if ( LA == '\0' )
R_s = R_i;
else
{
Digit(Digit_value);
R1_i = 3* R_i + Digit_value;
R(R1_i,R1_s);
R_s = R1_s;
}
}
void Digit(int& Digit_val)
{
LA = token();
if ( LA == '0' ) Digit_val = 1;
else if ( LA == '1' ) Digit_val = 0;
else if ( LA == '\0' ) return;
else input_error();
}
void input_error()
{ cout << "unacceptable character" << endl; }
int main(int argc, char *argv[])
{
str = argv[1];
int str_value;
cout << str << endl;
Num(str_value);
cout << "value = " << str_value << endl;
}
Comment