Вписване в сайта



рекурсия

Вторник, 27 Юли 2010 11:19

задачи с рекурсия

Написана от 
Оценете
(14 гласа)

Да се състави програма на C++, която извежда сумата на всички числа от интервала 1 до въведено число.
Входни данни: естествено число от интервала [10 - 30000].
Пример: 5 Изход: 15
Използвайте рекурсия
Решение (свободен достъп)

Да се състави програма на C++, която извежда факториела на въведено число n! = n*(n-1)*(n-2)*..*2*1.
Входни данни: естествено число от интервала [10 - 20].
Пример: 5 Изход: 120
Използвайте рекурсия
Решение

Да се състави програма на C++, която извежда в обратна последователност стойностите на отделните елементи от даден едномерен масив (вектор).
Пример: 2, 4, 5, 3, 1
Изход: 1, 3, 5, 4, 2
Използвайте рекурсия
Решение

Да се състави програма на C++, която проверява има ли определена цифра във вече въведено число.
Входни данни: естествено число от интервала [10 - 30000] и цифра.
Пример: в числото 2345 има цифра 2, но в числото 7654 няма.
Използвайте рекурсия
Решение

Да се състави програма на C++, която изчислява ред на Фибоначи.
Число с пореден номер >2 се образува като сбор от числата с поредни номера n1 и n2.
Пример: 5 Изход: 5
Използвайте рекурсия
Решение

Да се състави програма на C++, която изчислява произведение на две естествени числа =>2, като се използва само събиране. Входни данни: 2 естествени числа от интервала [2 - 100].
Пример: 4, 5 Изход: 20
Използвайте рекурсия
Решение

Да се състави програма на C++, която изчислява квадрата на естествено число =>2, като при това не ползва умножение/степенуване. Входни данни: естествено число от интервала [2 - 100].
Пример: 5 Изход: 25
Използвайте рекурсия
Решение

Да се състави програма на C++, чрез която се въвеждат символи до въвеждането на знака 'Z'. Програмата да изведе всички въведени символи в ред обратен на въвеждането им.
Пример: ACDFZ Изход: ZFDCA
Използвайте рекурсия
Решение

Да се състави рекурсивна функция, чрез която се въвеждат естествени числа от интервала [10 .. 100] от 10-ичната бройна система, а ги извежда в посочена от потребителя бройна система от интервала [2 .. 9]
Пример: 15, 2 Изход: 1111
Използвайте рекурсия
Решение

Да се състави програма на C++, чрез която се извършва степенуване на число от интервала [9.99 .. 9.99]. Степенният показател е цяло число от интервала [-5..5].
Пример: 15, 2 Изход: 225
Използвайте рекурсия
Решение

Задачата за Ханойски кули се състои в преподреждане на различни по диаметър дискове.
Имате 3 оси, на които можете да поставяте дисковете. Имате право да местите само по един диск - най-горния, от която и да е ос, и трябва да го поставите най-отгоре на желана от Вас ос. Нямате право да да местите диск, ако има диск извън една от 3-те оси.
Да се се състави програма за решаване на задачата "Ханойски кули".
Входни данни: естествено число от интервала [2..5].
Вход: 3
Изход:
Преместете диск 2 от A на B
Преместете диск 1 от C на B
Преместете диск 3 от A на C
Преместете диск 1 от B на A
Преместете диск 2 от B на C
Преместете диск 1 от A на C
Използвайте рекурсия
Решение

Да се състави програма на C++, чрез която се осъществява бързо вдигане на степен.
Входни данни: основа - реално число [10.1..99.9] и степенен показател естествено число от интервала [3..10].
Използвайте рекурсия
Решение

Имате предварително въведени стойности в масив от 9 числа от интервала [-99.99..99.99].
Да се състави програма на C++, която извеждащ минималния елемент от масива.
Използвайте рекурсия
Решение

Да се състави програма на C++, чрез която се въвеждат 9 реални числа от интервала [-99.99..99.99].
Проверете дали въведената редица е монотонно нарастваща.
Пример: 1 2 3 3 е, но 1 3 2 4 не е монотонно нарастваща
Използвайте рекурсия
Решение

Да се състави програма на C++, която проверява дали въведено естествено число е просто.
Пример: 101 Изход: просто
Използвайте рекурсия
Решение

Да се състави програма на C++, чрез която по въведени начална и крайна цифра се извеждат на всеки нов ред следната последователност (триъгълник от знаци):
Пример: 1, 9
Изход:
1
1 2
1 2 3
... до
1 2 3 4 5 6 7 8 9
Използвайте рекурсия
Решение

Намерете двуцифрено естествено число xy, за което се въвеждат сборът от цифрите 'x+y' и разликата между числата 'yx - xy'.
Да се състави програма на C++, която по въведени сбор и разлика извежда цифрите на числото.
Пример: Сбор x + y = 12; Разлика yx - xy = 36.
Изход: 48
Използвайте рекурсия
Решение

В една от книгите игри главният герой се изправя пред последната преграда, деляща го от белия свят - вълшебно огледало. Той трябва да научи магическата дума за отваряне на вратата. Героят пише заклинание, а огледалото, ако е в настроение му отговаря правилно.
И понеже обстановката е мистична героят пише, но нищо не се вижда. След като се въведе текста с Enter се изписва всичко въведено, но в обратна последователност. Огледалото извежда видим текст, който се състои само от цифри и главни букви, участващи във въведения текст.
Да се състави програма на C++, чрез която с рекурсивна функция се въвежда низ с дължина [10..9999] знака. Въвеждането спира след натискане на клавиша Enter, като при въвеждането не се изписва нищо на екрана.
Програмата да изведе 1) въведения текст в обратна последователност на въвеждането, 2) по реда на въвеждането всички цифри и накрая в същия ред само главните букви.
Пример: rekursiq13
Изход: 31aisrukeR отговор огледало 13R, брой въведени символи 10.
Използвайте рекурсия
Решение

Да се състави програма на C++, чрез която се извежда триъгълник от букви.
Първият ред на триъгълника започва с А и завършва с въведената главна латинска буква. Във всеки следващ ред крайният знак е с 1 по-малък (по ASCII код).
Пример: D
Изход:
A B C D
A B C
A B
A
Използвайте рекурсия
Решение

Да се състави програма на C++, чрез която се въвежда естествено число N от интервала [12..1234567].
Програмата да извежда число, чиито цифри са написани в ред обратен на въведеното число.
Да не се въвеждат числа кратни на 10. Да се извежда съобщение дали въведеното число е палиндром.
Пример: 12321 Изход: 12321 да.
Използвайте рекурсия
Решение

Иван е запален по билярд. Купил си е множество топки и непрекъснато си играе с тях. Майка му се сърди, че в стаята е вечно разхвърляно и няма къде да се стъпи на пода.
Иван решава да подреди всичките си топки на триъгълник – на всеки нов ред всяка от топките се слага между две топки от предходния ред.
Да се състави програма на C++, чрез която по въведено естествено число N от интервала [2…202020] се извежда дали най-горният ред ще съдържа само една топка при спазване на горните изисквания.
Пример: 55 Изход: Да
Използвайте рекурсия
Решение

Имате две цели числа M и N от интервала [-102..102].
Да се състави програма на C++, която намира най-големия общ делител на M и N.
Пример: 18,-39 Изход 3
Използвайте рекурсия
Решение

Имате реално число M от интервала [2.99..10002.99]. Броят цифри в числото, след десетичната точка е от интервала. [2..4].
Да се състави програма на C++, която намира най-малкото цяло число N, което съдържа всички цифри на M, подредени в същата последователност.
Пример: 18.39 Изход: 1839
Използвайте рекурсия
Решение

Имате реално число M от интервала [2.99..10002.99]. Броят цифри в числото, след десетичната точка е от интервала. [2..4]. Имате и друго, естествено число P от интервала [2..1002].
В случая M е делимо, P делител. Търсим дали частното N/P е рационално число, чийто брой цифри след десетичната запетая е по-малък или равен на броя съответни цифри в делимото M.
Да се състави програма на C++, която извежда отговор дали условието се изпълнява (дали броя цифри в частното след десетичната запетая е <= на съответния брой цифри в делимото.
Пример: 18.39; 3
Изход: Да. 6.13
Използвайте рекурсия
Решение

Наближава Коледа и трябва да се подготви тържеството.
Учениците от един клас решили хоро да играят. Дотук добре, обаче..
Не могат да се разберат кой с кого да се хване. Стоят и се препират вместо да репетират.
Да се създаде програма, чрез която се въвежда броя на участниците - естествено число N от интервала [2..22]. Програмата да изчислява и извежда брой различни подреждания на участниците в хорото.
Пример: 5 Изход: 24
Използвайте рекурсия
Решение

Имате линейно Диофантово уравнение представно чрез коефициентите си: Ax + By = C, където A, B, C са естествени числа от интервала [1..24].
Да се състави програма на C++ за намиране възможно решение с цели числа.
Пример: 3, 4, 43
Изход: x=1, y=10
Използвайте рекурсия
Решение

Имате предварително въведен редица от естествени числа, принадлежащи на интервала [0..1010].
Да се състави програма, ползваща рекурсивни функции, чрез която се извежда дали има повтарящи се елементи в редицата.
Пример: 1,3,4,5,6,7,8,9,1
Изход: Има повтарящи се елементи.
Решение

Да се състави програма (C++) за изчисляване на броя възможни думи, съдържащи N на брой различни букви.
N е естествено число от интервала [2..9].
Пример: 3 Изход: 6
Използвайте рекурсия.
Решение

Да се състави програма, която чрез рекурсивна функция, извежда неповтарящата се част от таблицата за умножение.
Пример: 6 Изход:
1 2 3 4 5 6
4 6 8 10 12
9 12 15 18
16 20 24
25 30
36
Решение

Да се състави програма, използваща рекурсивна функция, чрез която се генерират всички вариации без повторение на естествени числа, от k елемента, клас m.
Числата k и m са естествени числа от интервала [2..30], като k >= m.
Да се извежда на отделен ред: пореден номер вариация и всеки от участващите в нея елементи – естествени числа от интервала [1.. k].
Пример: брой елементи 4, клас 2 Изход: 12,13,14, 21,23,24,31,32,34, 41,42,43
Решение

Да се състави програма, използваща рекурсивна функция за изчисляване на броя възможни комбинации от N на брой различни елементи по M елемента.
M, N са естествени числа от интервала [5..15], а N е по-голямо от>M.
Пример: 5,3 Изход: 10
Решение

Да се състави програма (C++), използваща рекурсивна функция, чрез която се генерират всички комбинации без повторение от k елемента, клас m на част от буквите на латинската азбука.
Числата k и m са естествени числа от интервала [3..26].
Да се извежда на отделен ред: пореден номер комбинация и всеки от участващите в нея елементи – главна латинска буква.
Пример: брой елементи 4, клас 2 Изход: A-B; A-C; A-D; B-C; B-D; C-D
Решение

Да се състави програма (C++), която по въведено естествено число N от интервала [2..20] извежда сумата на всички факториели на числата от 1 до въведеното.
Пример: 5 Изход 154
Да се използва рекурсия.
Решение

При изчисляване на факториел от естествено число N се взема произведението от N и всички предшестващи го естествени числа.
Аналогично при двоен факториел се взема произведението от N и всички естествени числа през 1.
Ако N е нечетно число, то N!!=1*3*5*7...*(N-4)*(N-2)*N.
Ако N е четно число, то N!!=2*4*6*8...*(N-4)*(N-2)*N.
Да се състави програма (C++), чрез която се въвежда естествено число N и се извежда двоен факториел N!!
Да се използва рекурсия.
Решение

Има една популярна игра, състояща се в следното: трябва да се вземат определен брой предмети от една купчина. Играчите са двама, предварително се разбират по колко най-много предмети могат да вземат, когато са на ход - естествено число N от интервала [5..25].
Целта е намиране на такава стратегия, че за противника да не остане нищо - последният, който не може да вземе предмет губи.
Играят компютър срещу човек. Играчът определя N, а компютърът общия брой предмети - квадрата на въведеното число и започва пръв.
Да се състави програма (C++), чрез която се реализира описаната игра. Програмата, чрез рекурсия, да определя колко предмета се вземат от компютъра за всеки отделен ход.
Да има защита срещу некоректни входни данни.
Решение

В класическия алгоритъм на Евклид, за намиране на най-голям общ делител (НОД) за двойка естествени числа е: от по-голямото число се води по-малкото до тяхното изравняване.
Полученото число е техния НОД, ако той е 1 числата са взаимно прости.
Има разновидност на този алгоритъм, при която не се ползва изваждане, а целочислено делене.
Имате въведени 2 естествени числа M, N от интервала [22..222].
Да се състави програма (C++), която чрез рекурсия намира НОД. В рекурсивната функция да се ползва целочислено делене.
Пример: 121, 99 Изход: 11
Решение

Един от примерите за диофантово уравнение, чиито решения са цели числа, са страните в правоъгълен триъгълник - пряко следствие от теоремата на Питагор a*a + b*b = c*c, където c е дължина на хипотенузата, a,b са дължини на катетите.
Такива тройки взаимно прости числа могат да бъдат получени и чрез следните формули:
a = M*M – N*N; b = 2*M*N, c=M*M + N*N, където M, N са естествени числа и M е по-голямо от N.
Да се състави програма (C++), чрез която се въвежда M – естествено число от интервала [2..102] и чрез рекурсивна функция се извеждат всички възможни питагорови тройки числа, изчислени по описания алгоритъм за M.
Пример: 4 Изход: 15,8,17; 12,16,20, 7,24,25
Решение

Да се състави програма (C++), чрез която по въведено реално число x от интервала [1..255] се изчислява корен квадратен по метода на Нютон.
Входни данни: x - подкоренна величина, gr - допустима грешка.
Пример: 2,.001 Изход: 1.4142.
Да се използва рекурсия.
Решение

Да се състави програма (C++), чрез която се сортират 40 случайно избрани естествени числа от интервала [100..999].
Метод на сортиране пряка размяна (метод на мехурчето).
Сортирането да бъде във възходяща последователност на стойностите и осъществено чрез рекурсия.
Решение

Да се състави програма (C++), чрез която се сортират 24 случайно избрани естествени числа от интервала [100..999].
Метод на сортиране пряко вмъкване (метод на картоиграча).
Сортирането да бъде в низходяща последователност на стойностите и осъществено чрез рекурсия.
Решение

Да се състави програма (C++), чрез която се сортират 40 случайно избрани естествени числа от интервала [1000..9999].
Да се използва алгоритъм за сортиране пряка селекция (метод на прекия избор).
Сортирането да бъде във възходящ ред на стойностите и осъществено чрез рекурсия.
Решение

Да се състави програма (C++), чрез която се въвежда естествено число N от интервала [10..100010].
Програмата да извежда най-близкото по-голямо просто число.
Пример: 98 Изход 101
Да се използва рекурсия.
Решение

Да се състави програма (C++), чрез която се въвежда естествено число N от интервала [10..10010] и се извежда сумата на цифрите му.
Пример: 15 Изход: 6
Използвайте рекурсия.
Решение

Да се състави програма (C++), чрез която се въвеждат числата N и М и се извежда сумата от цифрите на всички числа от числовия интервал [N..M].
N, M са естествени числа от интервала [1..10001].
Програмата да не прави разлика за начало и край на числовия интервал.
Пример: 15,10 Изход: 21
Използвайте рекурсия.
Решение

Да се състави програма (C++), чрез която се показва сходимостта и се изчислява сумата на рекурентна редица с общ член: 1 + 1/n^2.
Чрез знака ^ е означено повдигане на степен.
Изчисленията продължават до достигане на по-малка, предварително определена зададена разлика между два съседни члена от редицата.
Пример: 0.001 Изход: обща сума 13.576
Използвайте рекурсия.
Решение

Да се състави програма (C++), която показва сходимостта и изчислява сумата на редица с общ член: 3*n+1/(3*n-1).
Изчисленията продължават до достигане на по-малка, предварително определена зададена разлика между два съседни члена от редицата.
Пример: 0.001 Изход: обща сума 30.0802
Използвайте рекурсия.
Решение

Да се състави програма (C++), която чрез рекурсивна функция показва сходимостта и изчислява сумата на редица с общ член: (2*n-3)/n
Изчисленията продължават до достигане на по-малка, предварително определена зададена разлика между два съседни члена от редицата.
Пример: 0.001 Изход: обща сума 98.1656
Решение

Дадена е рекурентна редица - аритметична прогресия, чиито членове са дроби с числител 1 и знаменател последователни естествени числа:
1, 1/2, 1/3, 1/4 .. 1/n, където n е естествено число от интервала [10..100].
Да се състави програма (C++), която изчислява сумата от членовете на тази рекурентна редица за определен брой членове - n. Използвайте рекурсия.
В рекурсивната функция да се извежда стойността на всеки отделен член на прогресията.
Пример: 5 Изход: 2.28333
Решение

Да се състави програма (C++), чрез която се въвеждат: начален член a, разлика - d и брой елементи - n на аритметична прогресия и се извежда сумата от всички членове на прогресията.
Числата a и d са реални от интервала [1.1 - 99.9].
Пример: a=1, d=1.1, n=6 Изход: 22.5.
Използвайте рекурсия.
Решение

Да се състави програма (C++), чрез която се въвеждат: начална сума на влог - K, лихвен процент - L и срок на депозит - P и се извежда крайната сума за получаване на срочния влог.
Числата K и L са реални от интервала [0.1 - 99999.9].
Пример: K=16674.7 , L=2.5, P=10 сума за получаване: 21345
Използвайте рекурсия.
Решение

Да се състави програма (C++), чрез която се въвеждат: начален член a, частно - d и брой елементи - n на геометрична прогресия и се извежда сумата от всички членове на прогресията.
Числата a и d са реални от интервала [1.1 - 2.1].
Пример: a=1, d=2, n=6 Изход: 63.
Използвайте рекурсия.
Решение

Рекурентна числова редица е редица, при която всеки следващ елемент се получава от предходните по определено правило.
Имаме рекурентна редица, чийто първи 5 члена са: 0:1, 1:1, 2:3, 3:11, 4:53, 5:309,
Да се състави програма (C++), която чрез рекурсивна функция извежда N-тия член на редицата.
N е естествено число от интервала [0..20].
Решение

Субфакториел може да се представи като рекурентна числова редица, в който всеки следващ елемент се представя като цялата част на отношението !An = [n!/e].
Имаме рекурентна редица, чийто първи 5 члена са: 0, 1, 2, 9, 44.
Да се състави програма (C++), която чрез рекурсивна функция извежда N-тия член на редицата.
N е естествено число от интервала [3..20].
Решение

Съществуват k броя квадрати със страна 1. От тях трябва да се състави фигура, подобна на равностранен триъгълник.
На върха на триъгълника има разположен един квадрат, на следващия ред са разположение 2 квадрата. На всеки следващ ред има един квадрат повече.
Да се състави програма използваща рекурсивна функция. По въведено естествено число k от интервала [10 - 30000] се извежда страната на най-големия възможен равностранен триъгълник, както и броя неизползвани квадрати.
Пример: 17 Изход: страна 5, неизползвани 2
Решение

Съществува равностранен триъгълник с дължина на страната естествено число n от интервала [1..101].
В триъгълника са вписани k броя едностранни триъгълници с дължина на страната 1.
Да се състави програма, която чрез рекурсивна функция изчислява максималния брой непресичащи се малки равностранни триъгълници.
Пример n = 8 Изход k = 64
Решение

Да се състави програма, чрез която се въвеждат две естествени числа [10..30000]. Програмата да използва рекурсивна функция за изчисляване произведението на двете числа, като изчислява сума от последователното целочислено умножение чрез делене на 2.
Пример: 10, 7 Изход:
5, 14
2, 28
1, 56
Произведение 70
Решение

Да се състави програма, чрез която по въведено естествено число от интервала [10..99] се извежда поредица числа, при спазване на следните изисквания:
1) ако предходното число е четно се извежда 0.5*числото;
2) ако предходното число е нечетно се извежда 3*числото +1.
Извеждането продължава докато не се получи стойност 1.
Пример: 11 Изход: 34 17 52 26 13 40 20 10 5 16 8 4 2 1

Решение

Редицата от правоъгълни числа е монотонно растяща и всеки неин член се дефинира като произведение на две последователни естествени числа. Такива числа биха могли да бъдат представен графично като правоъгълници със страни k и k+1.
Да се състави програма, чрез която се въвежда естествено число N от интервала [3..103].
Програмата да изведе всички правоъгълни числа от първото правоъгълно число до въведения пореден номер.
Пример: 12 Изход: 2, 6, 12, 20, 30, 42, 56, 72, 90, 110, 132, 156

Решение

Редицата от триъгълни числа е монотонно растяща като всеки неин член може да се представи като сума от последователни естествени числа.
Tриъгълни числа могат да се представят графично като брой сфери подредени в равностранен триъгълник със страни k.
Да се състави програма, чрез която се въвежда естествено число N от интервала [3..103].
Програмата, чрез рекурсивна функция, да изведе всички триъгълни числа от въведения пореден номер N до първото триъгълно число.
Пример: 10 Изход: 55, 45, 36, 28, 21 15 10, 6, 3, 1

Решение

Да се състави програма, чрез която се въвежда естествено число N от интервала [1..20]. Чрез рекурсивна функция да се изведе минималното двоично число съдържащо в записа си N броя единици.
Пример: 4 Изход 15

Решение

Да се състави програма, чрез която се въвеждат две естествени число N и K. Числото N да се представи като двоично число с K броя цифри. Да се използва рекурсивна функция.
Пример: chislo: N=15, K=5 Изход: 01111

Решение

Да се състави програма, чрез която се въвежда естествено число N. Числото N редставлява брой членове на рекурентна редица от вида: a(1)=1, a(n)=5*(2*n-1)*n-a*(n-1), където n е естествено число. Програмата, чрез рекурсивна функция, да извежда стойността на отделните елементи на рекурентната редица от 1-вия до N-тия.
Пример: N=5; Изход: 1, 29 ,46, 94, 131

Решение

Да се състави програма, която извежда на екрана всички комбинации от K буквени думи над азбуката съдържаща N главни букви от латинската азбука.
В думите не трябва да има повтарящи се букви. Да се използва рекурсивна функция.
Пример: N=4, K=2 възможни думи над азбуката са: AB,AC,AD,BA,BC,BD,CA,CB,CD,DA,DB,DC

Решение

Да се състави програма, чрез която се въвежда десетична дроб. Програмата, чрез рекурсивна функция, да извежда въведената стойност като двоична дроб. Точността на изчисляване се ограничава или до указан брой знаци или до получаване на еквивалентна стойност.
Пример: 0.125 Изход: 0.001
десетична дроб: 0.12444 двоична дроб с 10 знака: 0.0001111111

Решение

Прочетена 20723 пъти Последно променена в Четвъртък, 15 Ноември 2012 16:02