2
我正在使用此代碼來解決問題。 4在歐拉項目。問題是:兩個3位數字的迴文數產品 - 項目歐拉解決方案4 - 蠻力不工作
迴文數字讀取相同的兩種方式。由兩個兩位數字產品製成的最大回文是9009 = 91×99.
找到由兩個3位數字產品製成的最大回文。
我試圖解決這個問題。我的代碼也會返回一個迴文數字,也是一個相當大的數字。但這是不正確的。我還在MathBlog.dk找到了正確的解決方案。但是我的代碼有什麼問題? -
long result = 0;
for (long x = 100; x <= 999; x++)
{
for (long y = 100; y <= 999; y++)
{
long num = x * y;
if (num.ToString() == StringFunctions.ReverseString(num.ToString()))
{
result = num;
}
}
}
Console.WriteLine("Result : {0}", result);
的StringFunctions.RevereString
功能如下:
public static class StringFunctions
{
public static string ReverseString(string s)
{
string result = "";
for (int i = s.Length - 1; i >= 0; i--)
{
result += s.Substring(i, 1);
}
return result;
}
}
我的代碼返回580085
但正確答案是906609
。我不想知道更好的解決方案。我只想知道爲什麼我的代碼無法正常工作。
任何幫助將不勝感激。提前致謝。
您從不檢查新計算的結果是否大於當前結果。這可能是因爲你在for循環中用最低值覆蓋了最高值的結果。 – rob
你正在返回找到的**最後一個**迴文,而不是**最大**。 –
@rob和Dennis_E我怎麼可能錯過了?謝謝你的幫助。 –