Advertisement
dimipan80

Exam 4. Crossing Sequences

Jun 14th, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.40 KB | None | 0 0
  1. namespace _4.CrossingSequences
  2. {
  3.     using System;
  4.     using System.Collections.Generic;    
  5.  
  6.     public class CrossingSequences
  7.     {
  8.         private const int MAX = 1000000;
  9.  
  10.         public static void Main(string[] args)
  11.         {
  12.             checked
  13.             {                
  14.                 int tribNum1 = int.Parse(Console.ReadLine());
  15.                 int tribNum2 = int.Parse(Console.ReadLine());
  16.                 int tribNum3 = int.Parse(Console.ReadLine());                
  17.                 int spiralNum = int.Parse(Console.ReadLine());
  18.                 int step = int.Parse(Console.ReadLine());
  19.  
  20.                 if (tribNum1 != spiralNum && tribNum2 != spiralNum && tribNum3 != spiralNum)
  21.                 {
  22.                     List<int> seqTribonacci = CalculateTribonacciSequenceAndCreateList(tribNum1, tribNum2, tribNum3);
  23.  
  24.                     bool foundCrossedNum = false;
  25.                     int counter = 1;
  26.                     while (spiralNum <= MAX)
  27.                     {
  28.                         if (seqTribonacci.Contains(spiralNum))
  29.                         {
  30.                             foundCrossedNum = true;
  31.                             Console.WriteLine(spiralNum);
  32.                             break;
  33.                         }
  34.  
  35.                         spiralNum += step * (counter / 2);
  36.                         counter++;
  37.                     }
  38.  
  39.                     if (!foundCrossedNum)
  40.                     {
  41.                         Console.WriteLine("No");
  42.                     }
  43.                 }
  44.                 else
  45.                 {
  46.                     Console.WriteLine(spiralNum);
  47.                 }
  48.             }
  49.         }
  50.  
  51.         private static List<int> CalculateTribonacciSequenceAndCreateList(int tribNum1, int tribNum2, int tribNum3)
  52.         {
  53.             checked
  54.             {
  55.                 List<int> numbers = new List<int>(MAX) { tribNum1, tribNum2, tribNum3 };
  56.                 int sum = 0;
  57.                 do
  58.                 {
  59.                     sum = tribNum1 + tribNum2 + tribNum3;
  60.                     if (sum <= MAX)
  61.                     {
  62.                         numbers.Add(sum);
  63.                     }
  64.  
  65.                     tribNum1 = tribNum2;
  66.                     tribNum2 = tribNum3;
  67.                     tribNum3 = sum;
  68.                 }
  69.                 while (sum < MAX);
  70.  
  71.                 return numbers;
  72.             }
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement