Отпечатване на цифри на число

Да се напишат рекурсивни функции, които:

  1. отпечатват цифрите на числото една под друга
  2. отпечатват цифрите на числото отзад напред
  3. отпечатват числото симетрично с неговото огледално – например за 1234 отпечатва 1234 4321
Публикувано в 12в с етикети . Постоянна връзка.

4 коментара по Отпечатване на цифри на число

  1. kaloyan каза:
    #include <iostream>
    #include <stdlib.h>
    
    using namespace std;
    
    //??????? ???? ??? ?????
    void edna_pod_druga(int chislo){
    	if(chislo!=0){
    		edna_pod_druga(chislo/10);
    		cout<<chislo%10<<endl;
    	}
    }
    
    //??????? ????? ??????
    void otzad_napred(int chislo){
    	if(chislo!=0){
    		cout<<chislo%10;
    		otzad_napred(chislo/10);
    	}
    }
    
    //??????????
    void simetrichno(int chislo){
    	if(chislo!=0){
    		cout<<chislo%10;
    		simetrichno(chislo/10);
    		cout<<chislo%10;
    	}
    	if(chislo==0) cout<<' ';
    }
    
    int main(int argc, char** argv) {
    	edna_pod_druga(1234);
    	otzad_napred(1234);
    	simetrichno(1234);
    	
    	system("pause");
        return 0;
    }
  2. sup3rEva каза:
    #include <cstdlib>
    #include <iostream>
     
    using namespace std;
    // 1.Отпечатване на цифрите една под друга. 
    void func(int chislo){
    	if (chislo<10) cout<<chislo;
    	else 
    	{
    	 int a=chislo/1000;
         int b=chislo/100%10;
         int c=chislo/10%10;
         int d=chislo%10;
          cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl<<endl;
    	}
    }
    //2.Отпечатване на цифрите на числото отзад напред.
    void func2(int chislo){
        if(chislo<10) cout<<chislo;
        else
         {
          cout<<chislo%10;
          return func2(chislo/10);
        }  
    }
    //3. Отпечатване на числото симетрично с неговото огледално. 
     void func3(int chislo){
     	if (chislo<10) cout<<chislo;
     	else {
     		 
    		 cout<<chislo%10;
    		 return func3(chislo/10);
    	 }
     }
    int main(int argc, char *argv[])
    {
        int chislo;
        cout<<"Vyvedete chislo: ";
        cin>>chislo;
        
        func(chislo);
        cout<<endl;
        func2(chislo);
        cout<<endl<<endl;
        cout<<chislo<<" "; 
        func3(chislo);
    	cout<<endl<<endl; 
         
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    • Данаил каза:

      Отговарям:
      //1. – не видях рекурсия
      //2. – добре! но може да се оптимизира – ако (chislo<10) то там chislo==chislo%10;
      //3. - хитрееш :-) трябва обаче самата функция да отпечатва и числото, и огледалното

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