Да се напишат рекурсивни функции, които:
- отпечатват сумата от цифрите на числото
- отпечатва броят на цифрите на числото
Да се напишат рекурсивни функции, които:
[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; int sum=0, br=0;//Глобални променливи int suma(int chislo){ if(chislo!=0){ sum=sum+chislo%10; suma(chislo/10); } return sum; } int broi(int chislo){ if(chislo!=0){ br++; broi(chislo/10); } return br; } int main(int argc, char** argv) { cout<<suma(1234)<<endl; cout<<broi(12340)<<endl; system("pause"); return 0; }Добре! Но се опитай да направиш функциите без използване на глобални променливи – те не са препоръчителни (освен в краен случай), защото с тях не може да имаш многонишково извикване на функциите, например. И въобще винаги си изложен на страничните ефекти от това някой друг да ти промени глобалната променлива точно в средата на твоята обработка.
#include <cstdlib> #include <iostream> using namespace std; //1. Отпечатва сумата от цифрите на числото. int func(int chislo){ if (chislo>0) { int a=chislo/1000; int b=chislo/100%10; int c=chislo/10%10; int d=chislo%10; int sum=0; sum=a+b+c+d; cout<<endl<<"Sumata ot cifrite na chisloto e: "<<sum<<endl; } else cout<<0<<endl; } //2. Отпечатва броят на цифрите на числото. int func2(int chislo, int br){ if (chislo<10) cout<<"1"; else { br=chislo%10; chislo=chislo/10; cout<<endl<<"Broqt na cifrite na chisloto e: "<<br<<endl; } } int main(int argc, char *argv[]) { int chislo, br; cout<<"Vyvedete chislo: "<<endl<<endl; cin>>chislo; func(chislo); cout<<endl<<endl; func2(chislo, br); cout<<endl<<endl; system("PAUSE"); return EXIT_SUCCESS; }Не видях рекурсия в тези функции…