Advertisement
Guest User

N-th member of sequence

a guest
Jan 8th, 2020
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.55 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class MainClass
  5. {
  6.     public static void Main()
  7.     {
  8.         Console.Write("Enter n = ");
  9.         int n = int.Parse(Console.ReadLine());
  10.         Console.WriteLine(Solve(n));
  11.         Console.WriteLine(SolveRecursevely(n));
  12.         Console.WriteLine(SolveMemoization(n));
  13.     }
  14.  
  15.     public static double Solve(int n)
  16.     {
  17.         double n1 = 4 / 3.0;
  18.         double n2 = 3;
  19.         double n3 = 4;
  20.         if (n == 1) return n1;
  21.         if (n == 2) return n2;
  22.         if (n == 3) return n3;
  23.         double nth = 0;
  24.         for (int i = 4; i <= n; i++)
  25.         {
  26.             nth = n3 + 2 * n2 - 8 * n1;
  27.             n1 = n2;
  28.             n2 = n3;
  29.             n3 = nth;
  30.         }
  31.         return nth;
  32.     }
  33.  
  34.     public static double SolveRecursevely(int n)
  35.     {
  36.         if (n == 1) return 4 / 3.0;
  37.         if (n == 2) return 3;
  38.         if (n == 3) return 4;
  39.         return SolveRecursevely(n - 1) + 2 * SolveRecursevely(n - 2) - 8 * SolveRecursevely(n - 3);
  40.     }
  41.  
  42.     public static double SolveMemoization(int n)
  43.     {
  44.         double result;
  45.         if (memo.ContainsKey(n))
  46.         {
  47.             result = memo[n];
  48.         }
  49.         else
  50.         {
  51.             result = SolveMemoization(n - 1) + 2 * SolveMemoization(n - 2) - 8 * SolveMemoization(n - 3);
  52.             memo[n] = result;
  53.         }
  54.         return result;
  55.  
  56.     }
  57.  
  58.     static Dictionary<int, double> memo = new Dictionary<int, double>() {
  59.             {1, 4 / 3.0},
  60.             {2, 3},
  61.             {3, 4}
  62.         };
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement