Рекурсията в живота

Обяснете чрез рекурсия как:

  1. Отивате от вас до площада.
  2. Изхарчвате всичките си пари.
  3. Изяждате цяло пакетче бисквити :-)
  4. Преглеждате всички непрегледани публикации във Фейсбук.
  5. Решавате чрез рекурсия всички подзадачи в тази задача.

Всяко решение трябва да съдържа прости стъпки, условие за дъно на рекурсията и рекурсивно извикване. Давам пример за рекурсивно решение на пресмятането сумата на числата от 1 до N:

  1. Ако числото е 0, то и сумата е 0
  2. В противен случай, сумата е равна на нашето число  + сумата на всички числа до преди него

Предложете и ваши задачи, демонстриращи използване на рекурсия в живота.

Публикувано в СИП с етикети . Постоянна връзка.

4 коментара по Рекурсията в живота

  1. kaloyank каза:
    #include <cstdlib>
    #include <iostream>
    //Отивате от вас до площада.
    using namespace std;	
    	void vurvi(int mc, int k){
    	
    		
    		if (mc<=k) {
    			
    		  cout<<"stignah"<<endl;
    		  return;
    	    }
    		cout<<"sitgnah na "<<mc<<endl;
    		vurvi(mc- k, k);
    		
    	}
    int main(int argc, char** argv) {
    		vurvi(34,  6);
    	return 0;
    }
    
  2. Alexander1 каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std; 
    // Отивате от вас до площада.
       void vurvi(int mc, int k){
         
             
            if (mc<=k) {
                 
              cout<<"stignah"<<endl;
              return;
            }
            cout<<"sitgnah na "<<mc<<endl;
            vurvi(mc- k, k);
             
        }
    //Изхарчвате всичките си пари.
        void harchene(int pari, int cena){
         
             
            if (pari<=0){
                 
              cout<<" nqmash poveche pari"<<endl;
              return;
            }
            cout<<" imash "<<pari<<" poharchi "<<cena<<" ostavat ti "<<pari-cena<<endl;
    		harchene(pari-cena, cena);
             
        }
    
    //Изяждате цяло пакетче бисквити :-)
        void qdene(int n){
        	if(n==0){
        		cout<<"izqde gi vsichkite"<<endl;
        		return ;
    		}
    //пробвах да го направя да отпечатва коя бисквита е изял и колко му остават, стана горе-долу
    		cout<<" izqde "<<n<<"tata"<<" ostavat ti "<<n-1<<endl; 
    		qdene(n-1);
    	}
    int main(int argc, char** argv) {
    vurvi(34,  6);
    cout<<endl;
    harchene(70,  14);
    cout<<endl;
    qdene(12);
        return 0;
    }

Вашият коментар