Forumul Scientia

IT şi electronică => Programare => Subiect creat de: automat din Aprilie 20, 2012, 09:12:29 PM

Titlu: Project Euler
Scris de: automat din Aprilie 20, 2012, 09:12:29 PM
Va salut.

Problema propusa pe http://projecteuler.net/problem=13 (http://projecteuler.net/problem=13) cere sa se determine primii 10 digiti ai sumei urmatoarelor 100 de numere fiecare avand 50 de digiti.
Numerele fiind asa de mari, nu exista tip de data care sa le poata memora.
Se poate rezolva folosind fisiere ?
Multumesc.
Titlu: Răspuns: Project Euler
Scris de: HarapAlb din Aprilie 20, 2012, 10:35:16 PM
S-a mai discutat tipul asta de problema. In loc sa folosesti fisiere poti folosi o structura de date special definita in memorie.
Titlu: Răspuns: Project Euler
Scris de: AlexandruLazar din Aprilie 20, 2012, 10:36:46 PM
Eşti sigur că nu există? Nu par atât de multe şi de mari -- dar cu siguranţă nu poţi folosi un tip de date unitar. Îţi trebuie un tip compus (e.g. un vector în care reţii separat cifrele) şi pe care să implementezi algoritmul de adunare. Asta ar fi metoda naivă, probabil există vreo scamatorie matematica prin care să nu ai nevoie să faci efectiv tot calculul, dar cu siguranţă nu sunt omul potrivit pentru asta  ;D.

Vezi că mai e un topic pe tema asta pe-aici.