Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. static int ff(int f[], int g[], int i, int n, int r) {
  2. if (i > n)
  3. return f[r];
  4. else {
  5. if (i % 2 == 1)
  6. f[r] = f[r-2] - g[r-1] + f[1] - g[0];
  7. else
  8. f[r] = -f[r-1] + g[r-1] - g[r-2] - f[0] + g[0];
  9. g[r] = 2*g[r-1] - 2*f[0] + g[1];
  10. for (int j = 0; j < r; j++) {
  11. f[j] = f[j+1];
  12. g[j] = g[j+1];
  13. }
  14. return ff(f, g, i+1, n, r);
  15. }
  16. }
  17.  
  18. static int fRec2(int n, int r) {
  19. int f[] = new int[maxR + 1];
  20. int g[] = new int[maxR + 1];
  21. if (n < r)
  22. return 2;
  23. else {
  24. for (int j = 0; j < r; j++) {
  25. f[j] = 2;
  26. g[j] = -1;
  27. }
  28. return ff(f, g, r, n, r);
  29. }
  30. }
  31.  
  32. // (c) iterativno
  33. static int fIter(int n, int r) {
  34. int f[] = new int[maxR + 1];
  35. int g[] = new int[maxR + 1];
  36. for (int i = 0; i < r; i++) {
  37. f[i] = 2;
  38. g[i] = -1;
  39. }
  40. if (n < r)
  41. return f[n];
  42. else {
  43. for (int i = r; i <= n; i++) {
  44. if (i % 2 == 1)
  45. f[r] = f[r-2] - g[r-1] + f[1] - g[0];
  46. else
  47. f[r] = -f[r-1] + g[r-1] - g[r-2] - f[0] + g[0];
  48. g[r] = 2*g[r-1] - 2*f[0] + g[1];
  49. for (int j = 0; j < r; j++) {
  50. f[j] = f[j+1];
  51. g[j] = g[j+1];
  52. }
  53. }
  54. }
  55. return f[r];
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement