Problem z pętlą while. Wypisywanie ciągu
Ostatnio zmodyfikowano 2015-11-12 23:49
kiereso Temat założony przez niniejszego użytkownika |
Problem z pętlą while. Wypisywanie ciągu » 2015-11-03 10:53:16 Witam, mam problem z takim oto zadaniem. Wypisz n-ty element ciągu Fn gdzie: F0 = 0 F1 = 1 Fi+2 = Fi+i+2 dla i>=0 Mój kod: #include <stdio.h>
int main() { int i = 0; int f = 0; int n; scanf( "%d", & n ); while( i < n ) { i++; f = f + i + 2; } printf( "%d\n", f ); return 0; } Problem polega na tym, że nie wiem gdzie popełniam błąd. Proszę o pomoc :) |
|
carlosmay |
» 2015-11-03 14:01:35 Problem polega na tym, że nie wiem gdzie popełniam błąd. |
Konkretnie. Jaki błąd? Czy źle wylicza? Czy program nie startuje? Czy coś innego? |
|
kiereso Temat założony przez niniejszego użytkownika |
» 2015-11-03 14:11:23 Program wylicza nie poprawny wynik. |
|
carlosmay |
» 2015-11-03 14:21:38 |
|
kiereso Temat założony przez niniejszego użytkownika |
» 2015-11-03 14:31:50 Nadal nic. W zadaniu gdy wpiszę 2 ma wyjść liczba 2, jak 3 to liczba 4, jak 4 to 6 itp. |
|
Rashmistrz |
» 2015-11-03 16:36:34 W trakcie edycji... Machnąłem się trochę za daleko. xDf = f + i + 2; U ciebie błąd polegał na tym, że niepoprawnie zapisałeś wzór: g(n) = g(n-1) + n + 2A oryginał wygląda tak: f(n+2) = f(n) + n + 2Odpowiednio przekształcając: f(n+2) = f(n) + n + 2 // pod n podstawiamy n - 2 f(n-2+2) = f(n-2) + n - 2 + 2 // oczyszczamy Uzyskujemy: f(n) = f(n-2) + nBędziesz musiał przechowywać dwie ostatnie wartości, jeśli chcesz liczyć krokowo wartości dla kolejnych argumentów. Oczywiście jeśli będziesz chciał uzyskać od razu konkretną wartość f(n) to musisz rozwiązać rekurencję tej funkcji... ______________________________________________ WolframAlpha mi wypluło: f(n) = 1/8( 2n( n + 2 ) - (-1)n + 1)Wykorzystując rozwiązanie tego rekurencyjnego wzoru, zapisałem coś takiego: #include <stdio.h>
int main() { int n, f; scanf( "%d", & n ); f = 2 * n; f *= n + 2; n % 2 ? f += 2: f; f /= 8; printf( "%d\n", f ); return 0; }
|
|
michal11 |
» 2015-11-03 22:50:18 Mi to wygląda na wzór rekurencyjny, napisz funkcję. |
|
kiereso Temat założony przez niniejszego użytkownika |
» 2015-11-04 17:42:15 Nadal nie chce działać. |
|
« 1 » 2 |