mellowdeep

Crossing Sequences

Dec 26th, 2015
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.92 KB | None | 0 0
  1. using System;
  2. using System.Numerics;
  3.  
  4.  
  5. namespace CrossingSequences
  6. {
  7.     class CrossingSequences
  8.     {
  9.         const int size = 1000000;
  10.         public static bool GetTribonacci(BigInteger firstTribNum, BigInteger secondTribNum,
  11.                                         BigInteger thirdTribNum, BigInteger spiralStart)
  12.         {
  13.             BigInteger tribonacci = firstTribNum + secondTribNum + thirdTribNum;
  14.             if (firstTribNum > spiralStart)
  15.             {
  16.                 return false;
  17.             }
  18.             if ((firstTribNum == spiralStart) && (firstTribNum <= size))
  19.             {
  20.                 return true;
  21.             }
  22.             BigInteger a = secondTribNum;
  23.             BigInteger b = thirdTribNum;
  24.             BigInteger c = tribonacci;
  25.  
  26.             return GetTribonacci(a, b, c, spiralStart);
  27.         }
  28.  
  29.         public static void Main()
  30.         {
  31.             int firstTribNum = int.Parse(Console.ReadLine());
  32.             int secondTribNum = int.Parse(Console.ReadLine());
  33.             int thirdTribNum = int.Parse(Console.ReadLine());
  34.  
  35.             int spiralStart = int.Parse(Console.ReadLine());
  36.             int spiralStep = int.Parse(Console.ReadLine());
  37.             bool checkForEquals = false;
  38.  
  39.             int counter = 0;
  40.             int step = spiralStep;
  41.  
  42.             for (int i = spiralStart; i <= size; i++)
  43.             {
  44.                 checkForEquals = GetTribonacci(firstTribNum, secondTribNum, thirdTribNum, spiralStart);
  45.                 if (checkForEquals)
  46.                 {
  47.                     Console.WriteLine(spiralStart);
  48.                     return;
  49.                 }
  50.                 if ((counter >= 2) && (counter % 2 == 0))
  51.                 {
  52.                     spiralStep += step;
  53.                 }
  54.                
  55.                 spiralStart += spiralStep;
  56.  
  57.                 counter++;
  58.             }
  59.             Console.WriteLine("No");
  60.         }
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment