0

乗算するとC#で数値回文が生成される2つの数値を特定することに成功しましたが、製品を低いものから高いものへと並べ替える必要があります。とにかくこれを行うことはありますか?

static void LargestPalindrome()
{
    ulong product = 0;
    ulong compare = 0;
    for (uint i = 100; i < 1000; i++) 
    {
        for (uint j = 100; j < 1000; j++)
        {
            product = i * j;
            StringBuilder value = new StringBuilder(product.ToString());

            //Pass string to reverse
            string value_r = Reverse(value.ToString());

            //Check if Numeric Palindrome
            if(value_r.Equals(value.ToString()) && product>compare)
            {      
                Console.WriteLine("{0} x {1} = {2} in reverse {3}", i, j, value, value_r);
            }
        }
    }
}
4

3 に答える 3

1

回文を印刷する代わりに、番号をList<int>に入れます。ループが完了したら、list.Sort()を呼び出します。

于 2013-01-30T03:51:42.703 に答える
0

以下で十分です。回文のリストを並べ替えて、コンソール画面に出力しただけです。

static void LargestPalindrome()
{
    ulong product = 0;
    ulong compare = 0;
    List<ulong> results = new List<ulong>();
    for (uint i = 100; i < 1000; i++) 
    {
        for (uint j = 100; j < 1000; j++)
        {
            product = i * j;
            StringBuilder value = new StringBuilder(product.ToString());

            //Pass string to reverse
            string value_r = Reverse(value.ToString());

            //Check if Numeric Palindrome
            if(value_r.Equals(value.ToString()) && product>compare)
            {      
                results.Add(product);
            }
        }
    }

    results.Sort();
    foreach (var palindrome in results)
    {
        Console.WriteLine(palindrome);
    }    
}
于 2013-01-30T03:55:38.123 に答える