- Просто извеждане + рекурсивно извикване
- да се напише програма за извеждане на сумата на числата от 1 до N
- да се напише програма за извеждане на N! (произведението на числата от 1 до N)
- да се напише програма за повдигане на X на степен 6
- да се напише програма за повдигане на 2 на степен N
- да се напише програма за отпечатване на буквите от A до Z
- да се напише програма за отпечатване на буквите от Z до A
- да се напише програма за отпечатване на N на брой звезди, на един ред
- Просто извеждане и преценка къде да се постави командата
- да се напише програма за отпечатване на екрана на:
- числата от 1 до N
- числата от N до 1
- числата от N до 1 и после обратно до N
- да се напише програма за отпечатване на буквите от Z до A и после обратно от А до Z
- да се напише програма за отпечатване на (((*))), за N на брой скоби, на един ред
- да се напише програма за отпечатване на екрана на:
- Просто извеждане и повече параметри
- да се напише програма за отпечатване на N на брой пъти на числото X, на един ред
- да се напише програма за отпечатване на N на брой пъти на произволен символ (указан като параметър), на един ред
- да се напише програма за повдигане на X на степен N
- да се напише програма за отпечатване на екрана на:
- числата от A до B
- числата от 1 до N и после обратно до 1
- числата от M до N и после обратно до M
- да се напише програма за отпечатване на буквите от A до Z и после обратно от Z до A
- да се напише програма за отпечатване на (((*))), за N на брой символи, на един ред, като да можем да укажем произволен друг символ вместо ‘(‘, ‘)’ и ‘*’
- Малко по-сложни пресмятания + рекурсивно извикване
- Да се напише рекурсивна функция, която установява, дали в записа на естественото число n се съдържа цифрата k
- Да се напишат рекурсивни функции, които:
- отпечатват цифрите на числото една под друга
- отпечатват цифрите на числото отзад напред
- отпечатват числото симетрично с неговото огледално – например за 1234 отпечатва 1234 4321
- отпечатват сумата от цифрите на числото
- отпечатва броят на цифрите на числото
- Да се напише програма, която извежда произволно число, разложено на прости множители. Например за 24 трябва да изведе 2 2 2 3
- Да се напише програма, която чрез рекурсивни функции отпечатва на екрана как ще изглежда сумата на числата от 1 до N. Например при N=5 трябва да изведе 1+2+3+4+5=15
- Да се напише програма, която чрез рекурсивни функции отпечатва на екрана N! Например при N=5 трябва да изведе 5!=120=1*2*3*4*5
- Да се напише програма, която чрез рекурсивни функции отпечатва триъгълник от N звездички. Например при N=4:
* * * * * * * * * * * * * * * * * * * * *
- Да се напише програма, която чрез рекурсивни функции отпечатва триъгълник от числата от 1 до N. Например при N=3:
1 1 2 1 2 3 1 2 1
- Да се напише програма, която чрез рекурсивни функции отпечатва триъгълник с размер N. Например при N=3:
|\ | \ | / |/
Всички задачи за:
Оградете кода с:
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]Достъп до сайта:
С повишена трудност:
Задачите със звездичка са с повишена трудност - решавайте ги, ако сте решили другите.-
Последни задачи:
Последни решения:
- Marin

за Къде се намира точка - Marin

за Вмъкване и изтриване на елемент * - Marin

за Позицията на X - Alexander1





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





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

за Пари за закуска - Alexander1





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





за По-големи от средното
- Marin
Топ участници за момента:
kaloyan164 решения/коментараGadget131 решения/коментараdreanor112 решения/коментараmarant74 решения/коментараsup3rEva68 решения/коментараБоряна65 решения/коментараNadq53 решения/коментараmaleboldjia48 решения/коментараkrisizdravi9543 решения/коментараMartinPlamenov38 решения/коментараЗадачи за дата:
ноември 2025 П В С Ч П С Н « февр. 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 Предишни задачи:
- февруари 2017 (38)
- януари 2017 (16)
- декември 2016 (17)
- ноември 2016 (14)
- октомври 2016 (26)
- юни 2016 (3)
- май 2016 (15)
- април 2016 (12)
- март 2016 (14)
- февруари 2016 (9)
- май 2015 (2)
- април 2015 (8)
- март 2015 (8)
- февруари 2015 (13)
- януари 2015 (11)
- декември 2014 (9)
- ноември 2014 (24)
- октомври 2014 (16)
- юни 2014 (2)
- май 2014 (8)
- април 2014 (10)
- март 2014 (14)
- февруари 2014 (22)
- януари 2014 (25)
- декември 2013 (27)
- ноември 2013 (37)
- октомври 2013 (38)
- септември 2013 (2)
- юни 2013 (6)
- май 2013 (10)
- април 2013 (19)
- март 2013 (35)
- февруари 2013 (32)
- януари 2013 (29)
- декември 2012 (28)
- ноември 2012 (37)
- октомври 2012 (26)
- септември 2012 (3)
- май 2012 (16)
- април 2012 (16)
- март 2012 (27)
- февруари 2012 (10)
- януари 2012 (13)
- ноември 2011 (16)
- октомври 2011 (8)
- април 2011 (4)
- март 2011 (19)
- февруари 2011 (19)
- януари 2011 (18)
- декември 2010 (25)
- ноември 2010 (10)
- октомври 2010 (33)
- септември 2010 (1)
По теми:
- break
- бройни системи
- булев тип
- вариантен избор
- вложена условна команда
- вложени цикли
- дати
- динамична променлива
- дървета
- запис
- изброим тип
- класове
- манипулатори на извеждането
- масив
- масив от записи
- многомерни масиви
- множества
- модули
- низ
- низове
- низови функции
- опашки
- отпечатване
- преобразуване на типовете
- реален тип
- рекурсия
- символен тип
- сортиране на масиви
- специфични операции за цели числа
- списъци
- стекове
- структури
- текстов файл
- типизирани файлове
- условна команда
- файл
- функции
- хедър файлове
- целочислен тип
- цикъл do-while
- цикъл for
- цикъл repeat
- цикъл while
- цифри на число
- шах
Всички задачи:
- 2016-2017 (111)
- Архив задачи (791)
- 2010-2011 (131)
- Информатика (131)
- 2011-2012 (109)
- ЗИП Информатика (4)
- 10в (4)
- Информатика (105)
- ЗИП Информатика (4)
- 2012-2013 (227)
- 2013-2014 (182)
- 2014-2015 (91)
- 2015-2016 (53)
- 2010-2011 (131)
Мета
Препоръчваме хостинг:

//1A #include <cstdlib> #include <iostream> using namespace std; //да се напише програма за извеждане на сумата на числата от 1 до N int print_sum(int n) { if (n==0) return 0; return print_sum(n-1)+n; } int main(int argc, char** argv) { int n; cin>>n; cout<<print_sum(n)<<endl; return 0; }Браво, Иви! Твое е първото публикувано решение на задача с рекурсия! :-)
//1B #include <cstdlib> #include <iostream> using namespace std; //да се напише програма за извеждане на N! (произведението на числата от 1 до N) int n_faktoriel(int n) { if (n==1) return 1; return n_faktoriel(n-1)*n; } int main(int argc, char** argv) { int n; cin>>n; cout<<n_faktoriel(n)<<endl; return 0; }Браво, Иви! Вярно!
#include <cstdlib> #include <iostream> using namespace std; //да се напише програма за повдигане на 2 на степен N int dveNaStepen(int n){ if(n==1) return 2; return 2*dveNaStepen(n-1); } int main() { int n; cin>>n; cout<<dveNaStepen(n); return 0; }Браво, Марти! Много добре!
//2 nachina na 1C #include <iostream> using namespace std; /* reshavane na zadachata bez rekursiq int shest(int &n) { return n=n*n*n*n*n*n; } int chislo(int x) { if (x==1) return 1; return shest(x); } */ //povdigame x na stepen n (universalno) int stepen(int x, int n ) { if (n==1) return x; return x * stepen (x, n-1); } int main(int argc, char** argv) { int x, n; cin>>x>>n; cout<<stepen(x,n)<<endl; return 0; }Браво, Иви! Трета решена задача от рекурсия!
#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ //1b //Simona i Alex using namespace std; int N(int n){ if(n==1)return 1; return n*N(n-1); } int main(int argc, char** argv) { int n; cout<<"vavedete chislo "; cin>>n; cout<<"N!="<<N(n); return 0; }Вярно! Страхотен екип! :-)
#include <iostream> #include <cstdlib> #include <iostream> #include <cmath> //да се напише програма за отпечатване на буквите от Z до A using namespace std; char azbuka(char z){ if (z<'a') return 0; cout<<z<<endl; return azbuka(z-1); } int main(){ char z='z'; cout<<azbuka(z); return 0; }Вярно! Само че според мен нямаш нужда да го връщаш като резултат – може просто да го отпечаташ.
#include <iostream> #include <cstdlib> #include <iostream> #include <cmath> //дда се напише програма за отпечатване на N на брой звезди, на един ред using namespace std; int zvezdi(int broi){ if (broi==0) return 0; cout<<"*"; return zvezdi(broi-1); } int main(){ zvezdi(5); }Вярно! Получаваш 5 звезди! :-)
#include <cstdlib> #include <iostream> //3 A. да се напише програма за отпечатване на N на брой пъти на числото X, на един ред using namespace std; double otpechatvane(double x,double n){ if (n==0) return 0; cout<<x; return otpechatvane(x,n-1); } int main(int argc, char** argv) { otpechatvane(2,0); return 0; }//1G да се напише програма за отпечатване на N на брой звезди, на един ред #include <cstdlib> #include <iostream> using namespace std; void stars (int N) { if (N==0) return; cout<<"*"; stars(N-1); } int main(int argc, char** argv) { int n; cin>>n; stars(n); return 0; }#include <cstdlib> #include <iostream> //3 Б. да се напише програма за отпечатване на N на брой пъти на произволен символ (указан като параметър), на един ред using namespace std; void otpechatvane(char x,int n) { if (n==0) return; cout<<x; return otpechatvane(x,n-1); } int main(int argc, char** argv) { otpechatvane('*',7); return 0; }//да се напише програма за отпечатване на буквите от A до Z #include <cstdlib> #include <iostream> using namespace std; void A_Z (char a) { if (a>'z') return; cout<<a<<" "; A_Z(a+1); } int main(int argc, char** argv) { char a='a' ; A_Z(a); return 0; }//да се напише програма за отпечатване на буквите от Z до A #include<iostream> using namespace std; void Z_A (char a) { if (a>'z') return; Z_A(a+1); cout<<a<<" "; } int main(int argc, char** argv) { char a='a' ; Z_A(a); return 0; }#include <cstdlib> #include <iostream> using namespace std; void zwezdi(int n){ /*Поставяме условие за край на рекурсията. Тя ще се изпълнява n-1 пъти докато достигне 0 и тогава ще се е отпечатал желаният брой звезди */ if (n==0) return; cout<<"*"; zwezdi(n-1); } int main(int argc, char** argv) { zwezdi(6); return 0; }С коментари, супер! :-) Но по-добре коментирай смисъла на всеки ред поотделно, така ще е по-ясно…
#include <cstdlib> #include <iostream> using namespace std; /*да се напише програма за отпечатване на N на брой пъти на числото X, на един ред */ void chislo(int n, int x){ /*Поставяме условие за край на рекурсията. Тя ще се изпълнява n-1 пъти докато достигне 0 и тогава ще се е отпечатал желаният брой пъти даденото число */ if (n==0) return; cout<<x; chislo(n-1,x); } int main(int argc, char** argv) { chislo(9,3); return 0; }#include <cstdlib> #include <iostream> //3 Д. да се напише програма за отпечатване на екрана на: числата от M до N и после обратно до M using namespace std; void otpechatvane(int m,int n) { if (n<m) return; cout<<m<<endl; otpechatvane(m+1,n); cout<<m<<endl; } int main(int argc, char** argv) { otpechatvane(2,7); return 0; }#include<iostream> using namespace std; //да се напише програма за отпечатване на екрана на: //числата от 1 до N void edno_N(int n) { if (n==0) return; edno_N(n-1); cout<<n; } //числата от N до 1 void N_1 (int n) { if (n==0) return; cout<<n; N_1(n-1); } //числата от N до 1 и после обратно до N void N_1_N(int n) { if(n==1) { cout<<"1"; return ; } cout<<n; N_1_N(n-1); cout<<n; } int main() { int a; cin>>a; edno_N(a); cout<<endl; N_1(a); cout<<endl; N_1_N(a); return 0; }Много добре! Личи си, че си разбрала кога поставяме код преди и кога след рекурсивното извикване.
//2В да се напише програма за отпечатване на (((*))), за N на брой скоби, на един ред #include<iostream> using namespace std; void skoba(int n) { if(n==0) { cout<<"*"; return ; } cout<<"("; skoba(n-1); cout<<")"; } int main() { int a; cin>>a; skoba(a); return 0; }#include <cstdlib> #include <iostream> using namespace std; void zwezdi(int n){ if (n==0) return; cout<<"*"; zwezdi(n-1); } /*Ползваме функцията за отпечатване на звезди на ред наготово за по-лесно */ /* Ще решим задачата най-оптимално като ползваме два параметъра n- ще оказва броя на звездите, които ще се отпечатват на всеки ред m- понеже редът на отпечатване трябва да е възходящ, m ще служи като стоп условие. */ void triugulnik(int n, int m){ if (n>m) return; zwezdi(n);cout<<endl; //поставяме нов ред след всяко извеждане triugulnik(n+1, m); zwezdi(n);cout<<endl; } int main(int argc, char** argv) { triugulnik(1,4); return 0; } }Супер! С това описание на параметрите вече прилича на добре документирана програма! По-разбираемо е, нали?
#include <cstdlib> #include <iostream> //2 cqlata using namespace std; // ------------------------------------------------------------------ //chislata ot 1 do N // ------------------------------------------------------------------ int chisla(int x, int n) { if(x==n) return n; cout<<x; return chisla(x+1,n); } //chislata ot 1 do N void chisla2(int x,int n) { if (x>n) return; cout<<x; chisla2(x+1,n); } void chisla2r(int x,int n) { if (x>n) return; chisla2r(x+1,n); cout<<x; } //chislata ot N do 1 void chisla3(int x, int n) { if(x==0) return; cout<<x; chisla3(x-1,n); } //chislata ot 1 do N i obratno void chisla4(int x, int n) { if (x==n) { cout<<n; return; } cout<<x; chisla4(x+1,n); cout<<x; } //a do z i obratno void bukvi(char n, char z){ if(n==z){ cout<<z; return; } cout<<n; bukvi(n+1,z); cout<<n; } int main(int argc, char** argv) { int x,n; cout<<chisla(1,5)<<" "; chisla2(1,5); cout<<" "; chisla3(5,1); cout<<" "; chisla2r(1,5); cout<<" "; chisla4(1,5); cout<<endl; bukvi('a','z'); return 0; }Ехеее, колко задачи накуп! :-) Браво, Алекс!
#include <cstdlib> #include <iostream> /* 2 A) да се напише програма за отпечатване на екрана на: I)числата от 1 до N II)числата от N до 1 III)числата от N до 1 и после обратно до N IV)да се напише програма за отпечатване на буквите от Z до A и после обратно от А до Z */ using namespace std; // от 1 до N void N_do_edno(int n){ if (n==0) return; N_do_edno(n-1); cout<<n; } //от N до 1 void edno_do_N(int n){ if (n==0) return; cout<<n ; edno_do_N(n-1); } // от N до 1 и после обратно до N void N_edno_N(int n){ if (n==1) { cout<<1; return; } cout<<n ; N_edno_N(n-1); cout<<n; } //да се напише програма за отпечатване на буквите от Z до A и после обратно от А до Z void Z_A_Z(char z ,char a){ if (z==a){ cout<<a; return; } cout<<z; Z_A_Z(z-1,a); cout<<z; } int main(int argc, char** argv) { int n; cin>>n; edno_do_N(n); cout<<endl; N_do_edno(n); cout<<endl; N_edno_N(n); cout<<endl; Z_A_Z('z','a'); return 0; }Браво, Калояне! Само оправи имената на първите две функции, защото са малко подвеждащи…
//3Е да се напише програма за отпечатване на (((*))), за N на брой символи, на един ред, като да можем да укажем произволен друг символ вместо ‘(‘, ‘)’ и ‘*’
#include<iostream> using namespace std; void skoba(int broi, char nachalo , char sreda, char krai) { if(broi==0) { cout<<sreda; return ; } cout<<nachalo; skoba(broi-1, nachalo, sreda, krai); cout<<krai; } int main() { int a; cin>>a; skoba(a,'(','%', ')'); cout<<endl; skoba(a,'&','^', '&'); return 0; }Много добре! И така с говорящи имена на променливите кодът е много по-четлив, нали?
#include <cstdlib> #include <iostream> //n-ta stepen using namespace std; int st(int n){ if (n==1) return 2; return 2*st(n-1); } int main(int argc, char** argv) { int n; cin>>n; cout<<st(n); return 0; }#include <cstdlib> #include <iostream> // 2-A using namespace std; void one_n(int n){ if (n==0) return; cout<<n; one_n(n-1); } void n_one(int n){ if (n==0) return; n_one(n-1); cout<<n; } void n_n(int n){ if (n==1){ cout<<1; return; } cout<<n; n_n(n-1); cout<<n; } void z_z(char n,char a){ if (n==a) { cout<<a; return; } cout<<n; z_z(n-1,a); cout<<n; } int main(int argc, char** argv) { int n, a; cin>>n; one_n(n); cout<<endl; n_one(n); cout<<endl; n_n(n); cout<<endl; z_z('z','a'); return 0; }Браво, Вели!
#include<iostream> using namespace std; void skoba(int n, char nachalo , char sreda, char krai) { if(n==0) { cout<<sreda; return ; } cout<<nachalo; skoba(n-1, nachalo, sreda, krai); cout<<krai; } int main() { int n; cin>>n; skoba(n,'(','*', ')'); cout<<endl; skoba(n,'L','O', 'L'); return 0; }Браво! LLLLOLLLL :-)
#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; //3a easy void X(int x) { if(x==0)return; cout<<"5"; X(x-1); } //3b void symbol(int n,char s) { if(n==0)return; cout<<s; symbol(n-1,s); } //3c int stepen( int x, int n) { if(n==1)return x; return x*stepen(x,n-1); } //3d числата от A до B void A_B(int a, int b) { if(a>b) return; cout<<a; A_B(a+1,b); } //3d числата от M до N и после обратно до M void M_N(int m, int n) { if(m==n){ cout<<n; return; } cout<<m; M_N(m+1,n); cout<<m; } int main(int argc, char** argv) { int x; X(5); cout<<endl; symbol(5,'A'); cout<<endl; cout<<stepen(2,5)<<endl; A_B(1,5); cout<<endl; M_N(1,5); return 0; }Ехааа, ти доби засилка! :-) Само за 3а идеята е да може да се отпечатва произволно число, не само 5. Другите са супер!
#include<iostream> using namespace std; // Функция която отпечатва само звездите void zvezdi(int n) { if (n==0) return; cout<<"*"; return zvezdi(n-1); } //Отпечатва една звезда и след тона отпечатва в аритметична погресия на ред останалите звезди.След това извършна обратния процес void triugulnik(int n,int m){ if (n>m) return; zvezdi(n);cout<<endl; triugulnik(n+1,m); zvezdi(n);cout<<endl; } int main() { triugulnik(1,5); return 0; }Браво! Задобряваш! :-)
#include<iostream> using namespace std; //Да се напише програма, която чрез рекурсивни функции отпечатва триъгълник от числата от 1 до N. Например при N=3: void chisla(int n) { if (n==0) return; chisla(n-1); cout<<n; } void triugulnik(int n,int m){ if (n>m) return; chisla(n);cout<<endl; triugulnik(n+1,m); chisla(n);cout<<endl; } int main() { triugulnik(1,5); return 0; }#include <cstdlib> #include <iostream> //Да се напише програма, която чрез рекурсивни функции, // отпечатва триъгълник от числата от 1 до N. Например при N=3: void chislo(int n, int x){ if (n==0) return; cout<<x; chislo(n-1,x+1); } void triugulnik(int n ,int x, int m){ if (n>m) return; chislo(n,x);cout<<endl; //поставяме нов ред след всяко извеждане triugulnik(n+1,x,m); chislo(n,x);cout<<endl; } int main(int argc, char** argv) { triugulnik(1,1,6); return 0; }Браво! Виж и решението на Марти – по-просто е.
#include<iostream> using namespace std; //4A Да се напише рекурсивна функция, която установява, дали в записа на естественото число n се съдържа цифрата k bool proverka(int n,int k){ if(n%10==k){ return true; } if (n==0){ return false; } if (k==n){ return true; } return proverka(n/10,k); } int main() { if(proverka(23512,3)){ cout<<"Sudurja se"; } else { cout<<"Ne se sudurja"; } return 0; }Браво, марти, ставаш спец! :-)
#include <cstdlib> #include <iostream> //Да се напише рекурсивна функция, която установява, дали в записа на естественото число n се съдържа цифрата k using namespace std; bool cifraVchislo(int n, int k){ if (n==k) return true; if (n==0) return false; if(n%10,k) return true; return cifraVchislo(n/10,k) } int main(int argc, char** argv) { if(cifraVchislo(123,11)){ cout<<"da"; }else cout<<"ne"; return 0; }Това if(n%10,k) нещо не го разбрах. Нито пък извикването cifraVchislo(123,11) отдолу :-)
#include<iostream> using namespace std; //Да се напише програма, която извежда произволно число, разложено на прости множители. Например за 24 трябва да изведе 2 2 2 3 void razlagane(int n,int k) { if (n==0) return; while(n%k!=0){ k++; } cout<<k<<" "; razlagane(n/k,k); } int main() { cout<<"Razlojeno na prosti mnojiteli chisloto e:"<<endl; razlagane(35,2); return 0; }Охоо, измисли я значи! Радвам се! :-)
#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; //4d int Suma(int n, int k) { if(n==k) { cout<<k; return k; } cout<<n<<"+"; return n+Suma(n+1,k); } //4e int N(int n, int k){ if(n==k) { cout<<k; return k; } cout<<n<<"*"; return n*N(n+1,k); } int main(int argc, char** argv) { int k; cin>>k; cout<<"="<<Suma(1,k)<<endl; cout<<"="<<N(1,k)<<"="<<"!"<<k<<endl; return 0; }Браво, Алекс!
#include<iostream> using namespace std; //Да се напише програма, която чрез рекурсивни функции отпечатва на екрана N! Например при N=5 трябва да изведе 5!=120=1*2*3*4*5 /*Имаме две променливи тъй като еднато ще използваме да умножаваме числото със следващото по-ниско от него а другата стойност показва от колко ще започне това умножения*/ void proizvedenie(int nachalo,int n){ if (n==0) { //Изразява финалния резултат cout<<"Obshtoto proizvedenie e:"<<nachalo; return; } //Показва всяко число по еденично nachalo*=n; cout<<n<<"* "; proizvedenie(nachalo,n-1); } int main() { proizvedenie(1,5); return 0; }Вярно! А можеш ли да модифицираш решението така че да извежда резултат точно като в примера? :-)