Advertisement
Guest User

Strings - Exercises / 08. *Letters Change Numbers

a guest
Feb 16th, 2017
521
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.94 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace _08.__Letters_Change_Numbers
  5. {
  6.     public class LettersChangeNumbers
  7.     {
  8.         public static void Main()
  9.         {
  10.             var input = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  11.             var separatedInput = new List<string>();
  12.             for (int i = 0; i < input.Length; i++)
  13.             {
  14.                 separatedInput.Add(input[i]);
  15.             }
  16.             var sum = 0.0;
  17.             foreach (var line in separatedInput)
  18.             {
  19.                 sum += GetLettersAsNumbers(line);
  20.             }
  21.             Console.WriteLine($"{sum:f2}");
  22.         }
  23.  
  24.         private static double GetLettersAsNumbers(string line)
  25.         {
  26.  
  27.             var firstLetter = line[0];
  28.             var lastLetter = line[line.Length - 1];
  29.  
  30.             line = line.Trim(lastLetter);
  31.             line = line.Trim(firstLetter);
  32.  
  33.             var number = double.Parse(line);
  34.             var firstLetterPos = GetLetterPositon(firstLetter);
  35.             var lastLetterPos = GetLetterPositon(lastLetter);
  36.             var sum = 0.0;
  37.  
  38.             if (char.IsUpper(firstLetter))
  39.             {
  40.                 sum = number / firstLetterPos;
  41.             }
  42.             else
  43.             {
  44.                 sum = number * firstLetterPos;
  45.             }
  46.  
  47.             if (char.IsUpper(lastLetter))
  48.             {
  49.                 sum = sum - lastLetterPos;
  50.             }
  51.             else
  52.             {
  53.                 sum = sum + lastLetterPos;
  54.             }
  55.  
  56.             return sum;
  57.         }
  58.  
  59.         private static int GetLetterPositon(char letter)
  60.         {
  61.             var position = 0;
  62.             if (char.IsUpper(letter))
  63.             {
  64.                 position = letter - 'A';
  65.             }
  66.             else
  67.             {
  68.                 position = letter - 'a';
  69.             }
  70.             return position+1;
  71.         }
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement