Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Text.RegularExpressions;
- using System.Numerics;
- namespace _02.Odd_Even_Jumps
- {
- class OddEvenJumps
- {
- static void Main(string[] args)
- {
- string input = Console.ReadLine().ToLower().Replace(" ", "");
- int oddJump = int.Parse(Console.ReadLine());
- int evenJump = int.Parse(Console.ReadLine());
- string oddLetters = "";
- string evenLetters = "";
- int posCounter = 1;
- for (int letter = 0; letter < input.Length; letter++)
- {
- if (posCounter % 2 != 0)
- {
- oddLetters += input[letter].ToString();
- posCounter += 1;
- }
- else
- {
- evenLetters += input[letter].ToString();
- posCounter += 1;
- }
- }
- BigInteger oddResult = new BigInteger();
- BigInteger evenResult = new BigInteger();
- oddResult = BigInteger.Zero;
- evenResult = BigInteger.Zero;
- int numJumps = 1;
- for (int letter = 0; letter < oddLetters.Length; letter++)
- {
- if (letter + 1 != oddJump * numJumps)
- {
- oddResult += (ulong)oddLetters[letter];
- }
- else
- {
- oddResult *= (ulong)oddLetters[letter];
- numJumps += 1;
- }
- }
- numJumps = 1;
- for (int letter = 0; letter < evenLetters.Length; letter++)
- {
- if (letter + 1 != evenJump * numJumps)
- {
- evenResult += (ulong)evenLetters[letter];
- }
- else
- {
- evenResult *= (ulong)evenLetters[letter];
- numJumps += 1;
- }
- }
- //string oddResultHex = Convert.ToString(oddResult, 16).ToUpper();
- //string evenResultHex = Convert.ToString(evenResult, 16).ToUpper();
- //Console.WriteLine("Odd: {0}", oddResult.ToString("X"));
- Console.WriteLine("Odd: {0}", ToNBase(oddResult, 16).ToUpper());
- Console.WriteLine("Even: {0}", ToNBase(evenResult, 16).ToUpper());
- }
- public static string ToNBase(BigInteger a, int n)
- {
- StringBuilder sb = new StringBuilder();
- do
- {
- BigInteger temp = a % n;
- switch (temp.ToString())
- {
- case "10": sb.Insert(0, 'A'); break;
- case "11": sb.Insert(0, 'B'); break;
- case "12": sb.Insert(0, 'C'); break;
- case "13": sb.Insert(0, 'D'); break;
- case "14": sb.Insert(0, 'E'); break;
- case "15": sb.Insert(0, 'F'); break;
- default: sb.Insert(0, a % n); break;
- }
- a /= n;
- } while (a > 0);
- return sb.ToString();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment