kyamaliev

C# Convert Big Integer to Hex with SB

Aug 14th, 2014
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.25 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Text.RegularExpressions;
  7. using System.Numerics;
  8.  
  9. namespace _02.Odd_Even_Jumps
  10. {
  11.     class OddEvenJumps
  12.     {
  13.         static void Main(string[] args)
  14.         {
  15.             string input = Console.ReadLine().ToLower().Replace(" ", "");
  16.             int oddJump = int.Parse(Console.ReadLine());
  17.             int evenJump = int.Parse(Console.ReadLine());
  18.             string oddLetters = "";
  19.             string evenLetters = "";
  20.             int posCounter = 1;
  21.             for (int letter = 0; letter < input.Length; letter++)
  22.             {
  23.                 if (posCounter % 2 != 0)
  24.                 {
  25.                     oddLetters += input[letter].ToString();
  26.                     posCounter += 1;
  27.                 }
  28.                 else
  29.                 {
  30.                     evenLetters += input[letter].ToString();
  31.                     posCounter += 1;
  32.                 }
  33.             }
  34.             BigInteger oddResult = new BigInteger();
  35.             BigInteger evenResult = new BigInteger();
  36.             oddResult = BigInteger.Zero;
  37.             evenResult = BigInteger.Zero;
  38.             int numJumps = 1;
  39.  
  40.             for (int letter = 0; letter < oddLetters.Length; letter++)
  41.             {
  42.                 if (letter + 1 != oddJump * numJumps)
  43.                 {
  44.                     oddResult += (ulong)oddLetters[letter];
  45.                 }
  46.                 else
  47.                 {
  48.                     oddResult *= (ulong)oddLetters[letter];
  49.                     numJumps += 1;
  50.  
  51.                 }
  52.  
  53.             }
  54.             numJumps = 1;
  55.             for (int letter = 0; letter < evenLetters.Length; letter++)
  56.             {
  57.                 if (letter + 1 != evenJump * numJumps)
  58.                 {
  59.                     evenResult += (ulong)evenLetters[letter];
  60.                 }
  61.                 else
  62.                 {
  63.                     evenResult *= (ulong)evenLetters[letter];
  64.                     numJumps += 1;
  65.                 }
  66.  
  67.             }
  68.             //string oddResultHex = Convert.ToString(oddResult, 16).ToUpper();
  69.             //string evenResultHex = Convert.ToString(evenResult, 16).ToUpper();
  70.             //Console.WriteLine("Odd: {0}", oddResult.ToString("X"));
  71.             Console.WriteLine("Odd: {0}", ToNBase(oddResult, 16).ToUpper());
  72.             Console.WriteLine("Even: {0}", ToNBase(evenResult, 16).ToUpper());
  73.  
  74.         }
  75.         public static string ToNBase(BigInteger a, int n)
  76.         {
  77.             StringBuilder sb = new StringBuilder();
  78.             do
  79.             {
  80.                 BigInteger temp = a % n;
  81.                 switch (temp.ToString())
  82.                 {
  83.                     case "10": sb.Insert(0, 'A'); break;
  84.                     case "11": sb.Insert(0, 'B'); break;
  85.                     case "12": sb.Insert(0, 'C'); break;
  86.                     case "13": sb.Insert(0, 'D'); break;
  87.                     case "14": sb.Insert(0, 'E'); break;
  88.                     case "15": sb.Insert(0, 'F'); break;
  89.                     default: sb.Insert(0, a % n); break;
  90.                 }
  91.  
  92.                 a /= n;
  93.             } while (a > 0);
  94.             return sb.ToString();
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment