Guide for Bitlles (1)
Com abordar aquest problema
Cada fila del triangle de bitlles té tantes bitlles com el número de la fila (fila 1 té 1 bitlla, \ fila 2 en té 2, etc). Has de dir quantes bitlles calen en total per a n files, però resolent-ho \ amb recursivitat, tal com demana l'enunciat.
Idea general:
- Pensa el problema en termes del cas anterior: si ja saps quantes bitlles calen per a n-1 \ files, quantes en calen per a n files? (Quantes bitlles té, ella sola, la fila número n?)
- Defineix el cas base: quantes bitlles calen quan no hi ha cap fila?
- Escriu una funció recursiva que es cridi a si mateixa amb un valor més petit, i sumi el que \ calgui segons el raonament del pas 1.
- Per cada cas de prova, crida la funció amb el n donat i mostra el resultat.
Paranys habituals:
- Amb n=1000 el total de bitlles és un número gran: fes servir un tipus de dades que admeti \
nombres grans (per exemple
longen Java; en Python els enters no tenen aquest límit). - Assegura't que la recursivitat té un cas base clar; si no, el programa no acabarà mai.
- Compte amb la profunditat de la recursivitat si n és gran: alguns llenguatges tenen un límit \ de crides recursives per defecte que potser cal ampliar.
Pista per a Python
Defineix una funció recursiva amb un cas base i un cas general que faci una crida amb n-1:
import sys
sys.setrecursionlimit(10000)
def bitlles(n):
# cas base: quantes bitlles calen si no hi ha cap fila?
if n == 0:
return 0
# cas general: bitlles(n) en funcio de bitlles(n-1) i de la fila n
return bitlles(n - 1) + n
casos = int(input())
for _ in range(casos):
n = int(input())
print(bitlles(n))