La idea básica:
Nota Tomo oficial:
Puntos clave:
No;
#include <iostream> #include <vector> using namespace std; const int mod = 10000; int a, b, p, q, k; num int [mod]; void init () { num [0] = a; num [1] = b; for (int i = 2; i <= k; i ++) { num [i] = (num [i - 1] * p)% mod + (q * num [i - 2])% mod; num [i] =% mod; } } // carga int (int k) { // si (k == 2) { // retorno ((p * b) mod% + (q * a)% mod)% mod; //} // else if (k == 1) { // retorno b; //} // else if (k == 0) { // devuelve una; //} // else { // retorno ((p * de carga (k - 1)) mod% + (q * carga (k - 2))% mod)% mod; //} //} int main () { while (cin >> a >> b >> p >> q >> k) { init (); cout << num [k] << endl; } }