Wyznaczanie modulo z ciągu fibonacciego
Ostatnio zmodyfikowano 2017-11-07 19:00
jatoprzechuj Temat założony przez niniejszego użytkownika |
Wyznaczanie modulo z ciągu fibonacciego » 2017-10-28 19:14:12 Tak jak w temacie muszę wyznacz modulo z ciągu fibonacciego. W pierwszej linii wejścia podana jest liczba testów T (1 ≤ T ≤ 100). W następnych T wierszach podane są pary n, m (1 ≤ n,m ≤ 109). Używam kolejki, a mimo to wyrzuca mi Seg. Fault. Jakieś pomysły? n-liczba, m-modulo, t-test. #include<iostream> #include<queue> using namespace std; queue < int > kolejka;
int f( int a ) { int fun; if( a == 0 ) return 0; if( a == 1 ) return 1; else if( a > 1 ) { fun = f( a - 1 ) + f( a - 2 ); return fun; } }
int main() { int t, n, m; int i = 0; cin >> t; while( t > 0 ) { cin >> n >> m; int wynik = f( n ); kolejka.push( wynik % m ); t--; } int wielkosc = kolejka.size(); for( int j = 0; j < wielkosc; j++ ) { cout << kolejka.front() << endl; kolejka.pop(); } return 0; } |
|
garlonicon |
» 2017-10-28 19:44:37 Zobacz, co się stanie przy obliczaniu na przykład f( 100 ) . |
|
mateczek |
» 2017-10-28 19:57:14 nie używaj tego algorytmu to jest nieporozumienie !!!! int f( int a ) { int fun; if( a == 0 ) return 0; if( a == 1 ) return 1; else if( a > 1 ) { fun = f( a - 1 ) + f( a - 2 ); return fun; } }
szybciej policzysz pisemnie na kartce, niż ten algorytm na intel i7 :). |
|
jatoprzechuj Temat założony przez niniejszego użytkownika |
» 2017-10-28 20:23:07 1. dlaczego program wywala dla f(100)? 2. To jeśli nie tym to jakim sposobem liczyć ciąg fibonacciego? |
|
mateczek |
» 2017-10-28 20:27:24 1 wynik nie mieści się w int !!!, algorytm jest durny !!! Jeśli wiesz na jakiej zasadzie działa algorytm który zastosowałeś powinieneś wiedzieć dlaczego go nie używać 2 normalnie pętlą iteracyjne jako suma dwóch ostatnich wyrazów ciągu
podaj przykładowe wejście i oczekiwany output. Bo nie wiem jak powinien wyglądać ciąg. (dwa pierwsze wyrazy) czy będzie to 0 1 1 2 czy 1 1 2
|
|
jatoprzechuj Temat założony przez niniejszego użytkownika |
» 2017-10-28 20:30:59 Dla danych wejściowych
10 1 10 2 10 3 10 4 25 5 25 6 25 7 27 8 29 9 31 10 33
poprawną odpowiedzią jest 1 1 2 3 5 8 13 21 3 22 |
|
mateczek |
» 2017-10-28 20:34:50 |
|
jatoprzechuj Temat założony przez niniejszego użytkownika |
» 2017-10-28 20:41:02 Dlaczego modulo jest wewnątrz pętli? |
|
« 1 » 2 3 4 5 6 7 |