CCCPaste

Untitled

#include 
using namespace std;
const int max_size = 1000;
struct stek {
    int niza[max_size];
    int idx;
    
    void init() {
        idx = -1;
    }
    bool isEmpty() {
        if(idx == -1) {
            return true;
        }
        else {
            return false;
        }
    }
    
    bool isFull() {
        if(idx == max_size - 1) {
            return true;
        }
        else {
            return false;
        }
    }
    
    void push(int x) {
        if(isFull() == true) {
            cout << "nema poveke prostor vo stekot" << endl;
            exit(-1);
        }
        idx++;
        niza[idx] = x;
    }
    
    int peek() {
        if(isEmpty() == true) {
            cout << "nema element vo stekot" << endl;
            exit(-1);
        }
        return niza[idx];
    }
    
    int pop() {
        if(isEmpty() == true) {
            cout << "nema element vo stekot" << endl;
            exit(-1);
        }
        int result = niza[idx];
        idx--;
        return result;
    }
    int size() {
        return idx + 1;
    }
    
};

void func(stek &m)
{
    stek s1, s2;
    s1.init();
    s2.init();
    
    int sz = m.size() / 2;
    while(m.isEmpty() == false) {
        if(m.size() > sz) {
            s1.push(m.pop());
        }
        else {
            s2.push(m.pop());
        }
    }
    
    while(s1.isEmpty() == false) {
        m.push(s1.pop());
    }
    
    
    int broj = 0;
    while(m.isEmpty() == false) {
        int c1 = m.pop();
        int c2 = s2.pop();
        
        int zbir = c1 + c2;
        if(zbir > 9) {
            zbir = 9;
        }
        broj = (broj * 10) + zbir;
        s1.push(zbir);
        
    }
    
    while(s1.isEmpty() == false ){
        broj = (broj * 10) + s1.pop();
    }
    cout << broj << endl;
    
}
int main()
{
    stek s;
    int no, element, c;
    s.init();
    cout << "Vnesete koj broj da se proveri:";
    cin >> no;
    while(no != 0){
        element = no % 10;
        no /= 10;
        s.push(element);
    }
    func(s);
    
}