#include <iostream>
using namespace std;
//Problema 2
int fibonacci(int n); //declaración
bool es_par(int n); //declaración
int main(int argc, char *argv[]) { //Main, grueso del código acá
int sumaTotal=0; //acumulador de elementos fibonacci pares.
for(int i = 1;; i++){ //iteración
if(fibonacci(i) < 4000000){ //condición que debe cumplirse
if(es_par(fibonacci(i)))sumaTotal+=fibonacci(i);
}else{
break; //break: condición de corte.
//Se abandona el bloque for
}
}
cout<<sumaTotal<<endl;
return 0;
}
bool es_par(int n){ //retorna:
return (n%2 == 0); //true si es un numero par
} //false en caso contrario
//Fibonacci se define como: [ F(n) = F(n-1) + F(n-2) ]
int fibonacci(int n){ //Función recursiva
if(n < 2){ //condición de corte n<2
return 1;
}else{
return fibonacci(n-1) + fibonacci(n-2); //llamado a la recursividad.
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovL1Byb2JsZW1hIDIKaW50IGZpYm9uYWNjaShpbnQgbik7CQkJLy9kZWNsYXJhY2nDs24KYm9vbCBlc19wYXIoaW50IG4pOwkJCQkvL2RlY2xhcmFjacOzbgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewkJLy9NYWluLCBncnVlc28gZGVsIGPDs2RpZ28gYWPDoQoJCglpbnQgc3VtYVRvdGFsPTA7CQkJCQkvL2FjdW11bGFkb3IgZGUgZWxlbWVudG9zIGZpYm9uYWNjaSBwYXJlcy4KCWZvcihpbnQgaSA9IDE7OyBpKyspewkJCQkvL2l0ZXJhY2nDs24KCQlpZihmaWJvbmFjY2koaSkgPCA0MDAwMDAwKXsJCQkJCS8vY29uZGljacOzbiBxdWUgZGViZSBjdW1wbGlyc2UKCQkJaWYoZXNfcGFyKGZpYm9uYWNjaShpKSkpc3VtYVRvdGFsKz1maWJvbmFjY2koaSk7CgkJfWVsc2V7CgkJCWJyZWFrOwkJCQkJCS8vYnJlYWs6IGNvbmRpY2nDs24gZGUgY29ydGUuCgkJCQkJCQkJCQkvL1NlIGFiYW5kb25hIGVsIGJsb3F1ZSBmb3IKCQl9Cgl9CgoJY291dDw8c3VtYVRvdGFsPDxlbmRsOwoJcmV0dXJuIDA7Cn0KCmJvb2wgZXNfcGFyKGludCBuKXsJCQkJLy9yZXRvcm5hOgoJcmV0dXJuIChuJTIgPT0gMCk7CQkJLy90cnVlIHNpIGVzIHVuIG51bWVybyBwYXIKfQkJCQkJCQkJLy9mYWxzZSBlbiBjYXNvIGNvbnRyYXJpbwoKLy9GaWJvbmFjY2kgc2UgZGVmaW5lIGNvbW86IFsgRihuKSA9IEYobi0xKSArIEYobi0yKSBdCmludCBmaWJvbmFjY2koaW50IG4pewkJCS8vRnVuY2nDs24gcmVjdXJzaXZhCglpZihuIDwgMil7CQkJCQkvL2NvbmRpY2nDs24gZGUgY29ydGUgbjwyCgkJcmV0dXJuIDE7Cgl9ZWxzZXsKCQlyZXR1cm4gZmlib25hY2NpKG4tMSkgKyBmaWJvbmFjY2kobi0yKTsJLy9sbGFtYWRvIGEgbGEgcmVjdXJzaXZpZGFkLgoJfQp9Cgo=