【发布时间】:2013-07-28 16:25:43
【问题描述】:
我正在解决与Project Euler #22 Python, 2205 points missing? 相同的问题,但我使用的是 C#。我找不到错误。这是我的代码:
class Program
{
static List<string> pole;
static string SaveName(StreamReader reader)
{
int znak = reader.Read();
string jmeno = "";
while ((znak < 'A') || (znak > 'Z'))
{
znak = reader.Read();
}
while (znak != ',')
{
jmeno = jmeno + (char) znak;
znak = reader.Read();
if (znak == 34) break;
}
return jmeno;
}
static void SaveNamesIntoList()
{
StreamReader reader = new StreamReader(@"../../../names.txt");
while (reader.Read() != ';')
{
pole.Add(SaveName(reader));
}
}
static void Main(string[] args)
{
pole = new List<string>();
SaveNamesIntoList();
pole.Sort();
int sum = 0;
int sum_word = 0;
string name = "";
for (int i = 0; i < pole.Count; i++)
{
name = pole[i];
sum_word = 0;
for (int u = 0; u < name.Length; u++)
{
sum_word += (name[u] - 'A' + 1);
}
sum += (sum_word * (i+1));
}
Console.WriteLine(sum);
}
}
感谢您的任何回答:)
【问题讨论】:
-
您在哪里按字母顺序对列表进行排序?
-
带有pole.Sort()的行;在 Main 方法中(就在 SaveNamesToList 之后)不知何故消失了,但这不是问题 :)
标签: c#