Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int ff(int f[], int g[], int i, int n, int r) {
- if (i > n)
- return f[r];
- else {
- if (i % 2 == 1)
- f[r] = f[r-2] - g[r-1] + f[1] - g[0];
- else
- f[r] = -f[r-1] + g[r-1] - g[r-2] - f[0] + g[0];
- g[r] = 2*g[r-1] - 2*f[0] + g[1];
- for (int j = 0; j < r; j++) {
- f[j] = f[j+1];
- g[j] = g[j+1];
- }
- return ff(f, g, i+1, n, r);
- }
- }
- static int fRec2(int n, int r) {
- int f[] = new int[maxR + 1];
- int g[] = new int[maxR + 1];
- if (n < r)
- return 2;
- else {
- for (int j = 0; j < r; j++) {
- f[j] = 2;
- g[j] = -1;
- }
- return ff(f, g, r, n, r);
- }
- }
- // (c) iterativno
- static int fIter(int n, int r) {
- int f[] = new int[maxR + 1];
- int g[] = new int[maxR + 1];
- for (int i = 0; i < r; i++) {
- f[i] = 2;
- g[i] = -1;
- }
- if (n < r)
- return f[n];
- else {
- for (int i = r; i <= n; i++) {
- if (i % 2 == 1)
- f[r] = f[r-2] - g[r-1] + f[1] - g[0];
- else
- f[r] = -f[r-1] + g[r-1] - g[r-2] - f[0] + g[0];
- g[r] = 2*g[r-1] - 2*f[0] + g[1];
- for (int j = 0; j < r; j++) {
- f[j] = f[j+1];
- g[j] = g[j+1];
- }
- }
- }
- return f[r];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement