Да се напишат рекурсивни функции, които:
- отпечатват цифрите на числото една под друга
- отпечатват цифрите на числото отзад напред
- отпечатват числото симетрично с неговото огледално – например за 1234 отпечатва 1234 4321
Да се напишат рекурсивни функции, които:
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]

за Къде се намира точка
за Вмъкване и изтриване на елемент *
за Позицията на X




за Броят на максималните елементи




за Броят на максималните елементи
за Пари за закуска




за Ученици с дадена оценка




за По-големи от средното| П | В | С | Ч | П | С | Н |
|---|---|---|---|---|---|---|
| « февр. | ||||||
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
#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; }Тук май виждам вече разбиране как работи рекурсията :-)
#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. - хитрееш :-) трябва обаче самата функция да отпечатва и числото, и огледалното