fork download
  1. #include <iostream>
  2.  
  3. int H(int n, int x) // recursive version
  4. {
  5. if (n <= 0)
  6. return -1;
  7. else if (n == 1)
  8. return 1;
  9. else if (n == 2)
  10. return 2 * x;
  11. else
  12. return 2 * x * H(n-1, x) - 2 * n * H(n - 2, x); // shift n+1, n n-1 to n, n-1 n-2
  13. }
  14.  
  15. int Hi(int n, int x) //iterative version
  16. {
  17. if (n <= 0)
  18. return -1;
  19. else if (n == 1)
  20. return 1;
  21.  
  22. int am2 = 1; // start for for n-2
  23. int am1 = 2*x; // start for n-1
  24. if (n == 2)
  25. return am1;
  26.  
  27. int am;
  28. for (int i=3; i<=n; i++) {
  29. am = 2*x*am1 - 2*i*am2;
  30. //prepare next interation
  31. am2=am1;
  32. am1=am;
  33. }
  34. return am;
  35. }
  36.  
  37.  
  38. int main()
  39. {
  40. int n, x;
  41. //std::cout << "Enter the number n: ";
  42. //std::cin >> n;
  43. //std::cout << "Enter the number x: ";
  44. //std::cin >> x;
  45.  
  46. for (x=5, n=1; n<6; n++) {
  47. std::cout << n<<" "<<x<<" Rec = " << H(n, x) << " Iter = " << Hi(n,x) << std::endl;
  48. }
  49. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
1 5 Rec = 1 Iter = 1
2 5 Rec = 10 Iter = 10
3 5 Rec = 94 Iter = 94
4 5 Rec = 860 Iter = 860
5 5 Rec = 7660 Iter = 7660