Hej,
prosiłbym o pomoc w kwestii skrócenia mojego kodu.
Program dotyczy zadania na SPOJ (http://pl.spoj.com/problems/JZAPKAB/). Moja wersja została zaakceptowana, jednak nie wydaje mi się aby bazowanie na kilku(nastu) instrukcjach warunkowych było optymalne.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SPOJ
{
class Program
{
static void Main(string[] args)
{
short value;
short get = 0;
string txt = Console.ReadLine();
for (byte b = 0; b < txt.Length; b++)
{
if (txt[b].Equals('a'))
{
value = 1;
get += value;
}
else if (txt[b].Equals('b'))
{
value = 2;
get += value;
}
else if (txt[b].Equals('c'))
{
value = 3;
get += value;
}
else if (txt[b].Equals('d'))
{
value = 4;
get += value;
}
else if (txt[b].Equals('e'))
{
value = 5;
get += value;
}
else if (txt[b].Equals('f'))
{
value = 6;
get += value;
}
else if (txt[b].Equals('g'))
{
value = 7;
get += value;
}
else if (txt[b].Equals('h'))
{
value = 8;
get += value;
}
else if (txt[b].Equals('i'))
{
value = 9;
get += value;
}
else if (txt[b].Equals('k'))
{
value = 10;
get += value;
}
else if (txt[b].Equals('l'))
{
value = 20;
get += value;
}
else if (txt[b].Equals('m'))
{
value = 30;
get += value;
}
else if (txt[b].Equals('n'))
{
value = 40;
get += value;
}
else if (txt[b].Equals('o'))
{
value = 50;
get += value;
}
else if (txt[b].Equals('p'))
{
value = 60;
get += value;
}
else if (txt[b].Equals('q'))
{
value = 70;
get += value;
}
else if (txt[b].Equals('r'))
{
value = 80;
get += value;
}
else if (txt[b].Equals('s'))
{
value = 90;
get += value;
}
else if (txt[b].Equals('t'))
{
value = 100;
get += value;
}
else if (txt[b].Equals('v'))
{
value = 200;
get += value;
}
else if (txt[b].Equals('x'))
{
value = 300;
get += value;
}
else if (txt[b].Equals('y'))
{
value = 400;
get += value;
}
else if (txt[b].Equals('z'))
{
value = 500;
get += value;
}
}
Console.Write(get);
}
}
}
Dzięki za pomoc ;)