Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- int n,x[100],k,c=0;
- void init()
- {
- x[k]=0;
- }
- bool amsuccesor()
- {
- if(x[k]<2)
- {
- x[k]++;
- return true;
- }
- return false;
- }
- bool evalid()
- {
- int i,j, suma=0;
- for(i=1; i<=k; i++)
- suma=suma+x[i];
- if(suma>n) return false;
- return true;
- }
- bool solutie()
- {
- int i,suma=0;
- for(i=1; i<=k; i++)
- suma=suma+x[i];
- if(suma==n)
- return true;
- return false;
- }
- void tipar()
- {
- int i;
- cout<<n<<"=";
- for(i=1; i<k; i++)
- cout<<x[i]<<"+";
- cout<<x[k];
- cout<<endl;
- }
- void back()
- {
- k=1;
- init();
- bool as,ev;
- while(k>0)
- {
- do
- {
- as=amsuccesor();
- ev=evalid();
- }
- while(as==1&&ev==0);
- if(as==1)
- if(solutie()==1)
- {
- tipar();
- c++;
- }
- else
- {
- k++;
- init();
- }
- else k--;
- }
- }
- int main()
- {
- cin>>n;
- back();
- cout<<endl<<endl<<c<<" solutii.";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement