Quantcast
Viewing all articles
Browse latest Browse all 12

Answer by GateKiller for Quickest Method to Reverse in String in C#.net

Using ggf31416's FastReverse function, here is the solution to Project Euler's Problem #4 which completes on my computer in 47ms.

using System;using System.Diagnostics;namespace Euler_Problem_4{    class Program    {        static void Main(string[] args)        {            Stopwatch s = new Stopwatch();            s.Start();            int t = 0;            for (int i = 999; i > 99; i--)            {                for (int j = i; j > 99; j--)                {                    if (i*j == FastReverse(i*j))                    {                        if (i * j > t)                        {                            t = i * j;                        }                    }                }            }            Console.WriteLine(t);            s.Stop();            Console.WriteLine("{0}mins {1}secs {2}ms", s.Elapsed.Minutes, s.Elapsed.Seconds, s.Elapsed.Milliseconds);            Console.ReadKey(true);        }        private static int FastReverse(int num)        {            int res = 0;            int q = (int)((214748365L * num) >> 31);            int rm = num - 10 * q;            num = q;            if (rm == 0) return -1;            res = res * 10 + rm;            while (num > 0)            {                q = (int)((214748365L * num) >> 31);                rm = num - 10 * q;                num = q;                res = res * 10 + rm;            }            return res;        }    }}

Viewing all articles
Browse latest Browse all 12

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>