// 12. hét – Rekurziós mélység Go-ban: a verem dinamikusan nő (alapból legfeljebb 1 GB)
// Futtatás: go run ./h12/stackdepth
package main

import "fmt"

func sumTo(n int64) int64 {
	if n == 0 {
		return 0
	}
	return n + sumTo(n-1)
}

func main() {
	fmt.Println("sumTo(5000) =", sumTo(5000))
	// Java-ban ez StackOverflowError lenne; Go-ban a goroutine verme automatikusan nő
	fmt.Println("sumTo(1 000 000) =", sumTo(1_000_000))
	// Végtelen rekurzió Go-ban is összeomlik ("goroutine stack exceeds 1000000000-byte limit"),
	// és ezt nem lehet elkapni – ezért itt nem futtatjuk.
	fmt.Println("Iteratívan mindig biztonságos: n·(n+1)/2 =", int64(1_000_000)*1_000_001/2)
}
