Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- 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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement