İç içe geçmiş listeyi tek seviyeli listeye dönüştür.
Yalnızca bir seviye derinlik garantilidir.
İpuçları
💡 İpucu 1: Boş bir liste oluştur ve her alt listeyi üzerine extend() et.
💡 İpucu 2: List comprehension ile: [item for sublist in nested for item in sublist]
💡 İpucu 3: itertools.chain.from_iterable(nested) de çalışır.
Yaklaşım & Açıklama
Rakam toplamı, özyinelemeli (recursive) düşüncenin temelidir.
**Problem:** 123 → 1+2+3 = 6.
**Özyinelemeli:**
```python
def sum_digits(n):
if n == 0:
return 0
return n % 10 + sum_digits(n // 10)
```
**Iteratif (özyinelemeli tercih edilir):**
```python
def sum_digits(n):
n = abs(n) # Negatif sayılar için
total = 0
while n > 0:
total += n % 10
n //= 10
return total
```
**Neden iteratif?** Python'da recursion limiti 1000. 10^1000 sayısı için stack overflow olur.
**Bonus — dijital kök:** Rakam toplamı tek haneye indirgenene kadar tekrarlanır (örn 123 → 6). Bu süreç O(log n) yerine O(log log n).