<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Project Euler: Problem 13</title>
	<atom:link href="http://www.geekality.net/2009/10/04/project-euler-problem-13/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geekality.net/2009/10/04/project-euler-problem-13/</link>
	<description>With a hint of Social Ineptitude</description>
	<lastBuildDate>Tue, 07 Feb 2012 09:05:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Ed</title>
		<link>http://www.geekality.net/2009/10/04/project-euler-problem-13/#comment-1401</link>
		<dc:creator>Ed</dc:creator>
		<pubDate>Sat, 09 Oct 2010 12:40:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.geekality.net/?p=612#comment-1401</guid>
		<description>He hasn&#039;t missed the point in this case. The idea of ProjectEuler.Net is to solve the problems programmatically using the power of a computer to your advantage. Whilst methods that save time in terms of computational cycles are better, the method you mention would be more suited to solving the problem by hand. A modern PC is capable of handling massive numbers extremely fast. I solved this problem in a similar fashion to the method show above but without the need for an external library and the code ran in 7ms:

private static string Solution13()
        {
            List numbers = new List
                                     {
                                         double.Parse(&quot;37107287533902102798797998220837590246510135740250&quot;),
                                         double.Parse(&quot;46376937677490009712648124896970078050417018260538&quot;),
                                         double.Parse(&quot;74324986199524741059474233309513058123726617309629&quot;),
                                         double.Parse(&quot;91942213363574161572522430563301811072406154908250&quot;),
                                         double.Parse(&quot;23067588207539346171171980310421047513778063246676&quot;),
                                         double.Parse(&quot;89261670696623633820136378418383684178734361726757&quot;),
                                         double.Parse(&quot;28112879812849979408065481931592621691275889832738&quot;),
                                         double.Parse(&quot;44274228917432520321923589422876796487670272189318&quot;),
                                         double.Parse(&quot;47451445736001306439091167216856844588711603153276&quot;),
                                         double.Parse(&quot;70386486105843025439939619828917593665686757934951&quot;),
                                         double.Parse(&quot;62176457141856560629502157223196586755079324193331&quot;),
                                         double.Parse(&quot;64906352462741904929101432445813822663347944758178&quot;),
                                         double.Parse(&quot;92575867718337217661963751590579239728245598838407&quot;),
                                         double.Parse(&quot;58203565325359399008402633568948830189458628227828&quot;),
                                         double.Parse(&quot;80181199384826282014278194139940567587151170094390&quot;),
                                         double.Parse(&quot;35398664372827112653829987240784473053190104293586&quot;),
                                         double.Parse(&quot;86515506006295864861532075273371959191420517255829&quot;),
                                         double.Parse(&quot;71693888707715466499115593487603532921714970056938&quot;),
                                         double.Parse(&quot;54370070576826684624621495650076471787294438377604&quot;),
                                         double.Parse(&quot;53282654108756828443191190634694037855217779295145&quot;),
                                         double.Parse(&quot;36123272525000296071075082563815656710885258350721&quot;),
                                         double.Parse(&quot;45876576172410976447339110607218265236877223636045&quot;),
                                         double.Parse(&quot;17423706905851860660448207621209813287860733969412&quot;),
                                         double.Parse(&quot;81142660418086830619328460811191061556940512689692&quot;),
                                         double.Parse(&quot;51934325451728388641918047049293215058642563049483&quot;),
                                         double.Parse(&quot;62467221648435076201727918039944693004732956340691&quot;),
                                         double.Parse(&quot;15732444386908125794514089057706229429197107928209&quot;),
                                         double.Parse(&quot;55037687525678773091862540744969844508330393682126&quot;),
                                         double.Parse(&quot;18336384825330154686196124348767681297534375946515&quot;),
                                         double.Parse(&quot;80386287592878490201521685554828717201219257766954&quot;),
                                         double.Parse(&quot;78182833757993103614740356856449095527097864797581&quot;),
                                         double.Parse(&quot;16726320100436897842553539920931837441497806860984&quot;),
                                         double.Parse(&quot;48403098129077791799088218795327364475675590848030&quot;),
                                         double.Parse(&quot;87086987551392711854517078544161852424320693150332&quot;),
                                         double.Parse(&quot;59959406895756536782107074926966537676326235447210&quot;),
                                         double.Parse(&quot;69793950679652694742597709739166693763042633987085&quot;),
                                         double.Parse(&quot;41052684708299085211399427365734116182760315001271&quot;),
                                         double.Parse(&quot;65378607361501080857009149939512557028198746004375&quot;),
                                         double.Parse(&quot;35829035317434717326932123578154982629742552737307&quot;),
                                         double.Parse(&quot;94953759765105305946966067683156574377167401875275&quot;),
                                         double.Parse(&quot;88902802571733229619176668713819931811048770190271&quot;),
                                         double.Parse(&quot;25267680276078003013678680992525463401061632866526&quot;),
                                         double.Parse(&quot;36270218540497705585629946580636237993140746255962&quot;),
                                         double.Parse(&quot;24074486908231174977792365466257246923322810917141&quot;),
                                         double.Parse(&quot;91430288197103288597806669760892938638285025333403&quot;),
                                         double.Parse(&quot;34413065578016127815921815005561868836468420090470&quot;),
                                         double.Parse(&quot;23053081172816430487623791969842487255036638784583&quot;),
                                         double.Parse(&quot;11487696932154902810424020138335124462181441773470&quot;),
                                         double.Parse(&quot;63783299490636259666498587618221225225512486764533&quot;),
                                         double.Parse(&quot;67720186971698544312419572409913959008952310058822&quot;),
                                         double.Parse(&quot;95548255300263520781532296796249481641953868218774&quot;),
                                         double.Parse(&quot;76085327132285723110424803456124867697064507995236&quot;),
                                         double.Parse(&quot;37774242535411291684276865538926205024910326572967&quot;),
                                         double.Parse(&quot;23701913275725675285653248258265463092207058596522&quot;),
                                         double.Parse(&quot;29798860272258331913126375147341994889534765745501&quot;),
                                         double.Parse(&quot;18495701454879288984856827726077713721403798879715&quot;),
                                         double.Parse(&quot;38298203783031473527721580348144513491373226651381&quot;),
                                         double.Parse(&quot;34829543829199918180278916522431027392251122869539&quot;),
                                         double.Parse(&quot;40957953066405232632538044100059654939159879593635&quot;),
                                         double.Parse(&quot;29746152185502371307642255121183693803580388584903&quot;),
                                         double.Parse(&quot;41698116222072977186158236678424689157993532961922&quot;),
                                         double.Parse(&quot;62467957194401269043877107275048102390895523597457&quot;),
                                         double.Parse(&quot;23189706772547915061505504953922979530901129967519&quot;),
                                         double.Parse(&quot;86188088225875314529584099251203829009407770775672&quot;),
                                         double.Parse(&quot;11306739708304724483816533873502340845647058077308&quot;),
                                         double.Parse(&quot;82959174767140363198008187129011875491310547126581&quot;),
                                         double.Parse(&quot;97623331044818386269515456334926366572897563400500&quot;),
                                         double.Parse(&quot;42846280183517070527831839425882145521227251250327&quot;),
                                         double.Parse(&quot;55121603546981200581762165212827652751691296897789&quot;),
                                         double.Parse(&quot;32238195734329339946437501907836945765883352399886&quot;),
                                         double.Parse(&quot;75506164965184775180738168837861091527357929701337&quot;),
                                         double.Parse(&quot;62177842752192623401942399639168044983993173312731&quot;),
                                         double.Parse(&quot;32924185707147349566916674687634660915035914677504&quot;),
                                         double.Parse(&quot;99518671430235219628894890102423325116913619626622&quot;),
                                         double.Parse(&quot;73267460800591547471830798392868535206946944540724&quot;),
                                         double.Parse(&quot;76841822524674417161514036427982273348055556214818&quot;),
                                         double.Parse(&quot;97142617910342598647204516893989422179826088076852&quot;),
                                         double.Parse(&quot;87783646182799346313767754307809363333018982642090&quot;),
                                         double.Parse(&quot;10848802521674670883215120185883543223812876952786&quot;),
                                         double.Parse(&quot;71329612474782464538636993009049310363619763878039&quot;),
                                         double.Parse(&quot;62184073572399794223406235393808339651327408011116&quot;),
                                         double.Parse(&quot;66627891981488087797941876876144230030984490851411&quot;),
                                         double.Parse(&quot;60661826293682836764744779239180335110989069790714&quot;),
                                         double.Parse(&quot;85786944089552990653640447425576083659976645795096&quot;),
                                         double.Parse(&quot;66024396409905389607120198219976047599490197230297&quot;),
                                         double.Parse(&quot;64913982680032973156037120041377903785566085089252&quot;),
                                         double.Parse(&quot;16730939319872750275468906903707539413042652315011&quot;),
                                         double.Parse(&quot;94809377245048795150954100921645863754710598436791&quot;),
                                         double.Parse(&quot;78639167021187492431995700641917969777599028300699&quot;),
                                         double.Parse(&quot;15368713711936614952811305876380278410754449733078&quot;),
                                         double.Parse(&quot;40789923115535562561142322423255033685442488917353&quot;),
                                         double.Parse(&quot;44889911501440648020369068063960672322193204149535&quot;),
                                         double.Parse(&quot;41503128880339536053299340368006977710650566631954&quot;),
                                         double.Parse(&quot;81234880673210146739058568557934581403627822703280&quot;),
                                         double.Parse(&quot;82616570773948327592232845941706525094512325230608&quot;),
                                         double.Parse(&quot;22918802058777319719839450180888072429661980811197&quot;),
                                         double.Parse(&quot;77158542502016545090413245809786882778948721859617&quot;),
                                         double.Parse(&quot;72107838435069186155435662884062257473692284509516&quot;),
                                         double.Parse(&quot;20849603980134001723930671666823555245252804609722&quot;),
                                         double.Parse(&quot;53503534226472524250874054075591789781264330331690&quot;)
                                     };
            double result = numbers.Aggregate((x, y) =&gt; x + y);
            return result.ToString().Substring(0, 11).Replace(&quot;.&quot;, string.Empty);
        }</description>
		<content:encoded><![CDATA[<p>He hasn&#8217;t missed the point in this case. The idea of ProjectEuler.Net is to solve the problems programmatically using the power of a computer to your advantage. Whilst methods that save time in terms of computational cycles are better, the method you mention would be more suited to solving the problem by hand. A modern PC is capable of handling massive numbers extremely fast. I solved this problem in a similar fashion to the method show above but without the need for an external library and the code ran in 7ms:</p>
<p>private static string Solution13()<br />
        {<br />
            List numbers = new List<br />
                                     {<br />
                                         double.Parse(&#8220;37107287533902102798797998220837590246510135740250&#8243;),<br />
                                         double.Parse(&#8220;46376937677490009712648124896970078050417018260538&#8243;),<br />
                                         double.Parse(&#8220;74324986199524741059474233309513058123726617309629&#8243;),<br />
                                         double.Parse(&#8220;91942213363574161572522430563301811072406154908250&#8243;),<br />
                                         double.Parse(&#8220;23067588207539346171171980310421047513778063246676&#8243;),<br />
                                         double.Parse(&#8220;89261670696623633820136378418383684178734361726757&#8243;),<br />
                                         double.Parse(&#8220;28112879812849979408065481931592621691275889832738&#8243;),<br />
                                         double.Parse(&#8220;44274228917432520321923589422876796487670272189318&#8243;),<br />
                                         double.Parse(&#8220;47451445736001306439091167216856844588711603153276&#8243;),<br />
                                         double.Parse(&#8220;70386486105843025439939619828917593665686757934951&#8243;),<br />
                                         double.Parse(&#8220;62176457141856560629502157223196586755079324193331&#8243;),<br />
                                         double.Parse(&#8220;64906352462741904929101432445813822663347944758178&#8243;),<br />
                                         double.Parse(&#8220;92575867718337217661963751590579239728245598838407&#8243;),<br />
                                         double.Parse(&#8220;58203565325359399008402633568948830189458628227828&#8243;),<br />
                                         double.Parse(&#8220;80181199384826282014278194139940567587151170094390&#8243;),<br />
                                         double.Parse(&#8220;35398664372827112653829987240784473053190104293586&#8243;),<br />
                                         double.Parse(&#8220;86515506006295864861532075273371959191420517255829&#8243;),<br />
                                         double.Parse(&#8220;71693888707715466499115593487603532921714970056938&#8243;),<br />
                                         double.Parse(&#8220;54370070576826684624621495650076471787294438377604&#8243;),<br />
                                         double.Parse(&#8220;53282654108756828443191190634694037855217779295145&#8243;),<br />
                                         double.Parse(&#8220;36123272525000296071075082563815656710885258350721&#8243;),<br />
                                         double.Parse(&#8220;45876576172410976447339110607218265236877223636045&#8243;),<br />
                                         double.Parse(&#8220;17423706905851860660448207621209813287860733969412&#8243;),<br />
                                         double.Parse(&#8220;81142660418086830619328460811191061556940512689692&#8243;),<br />
                                         double.Parse(&#8220;51934325451728388641918047049293215058642563049483&#8243;),<br />
                                         double.Parse(&#8220;62467221648435076201727918039944693004732956340691&#8243;),<br />
                                         double.Parse(&#8220;15732444386908125794514089057706229429197107928209&#8243;),<br />
                                         double.Parse(&#8220;55037687525678773091862540744969844508330393682126&#8243;),<br />
                                         double.Parse(&#8220;18336384825330154686196124348767681297534375946515&#8243;),<br />
                                         double.Parse(&#8220;80386287592878490201521685554828717201219257766954&#8243;),<br />
                                         double.Parse(&#8220;78182833757993103614740356856449095527097864797581&#8243;),<br />
                                         double.Parse(&#8220;16726320100436897842553539920931837441497806860984&#8243;),<br />
                                         double.Parse(&#8220;48403098129077791799088218795327364475675590848030&#8243;),<br />
                                         double.Parse(&#8220;87086987551392711854517078544161852424320693150332&#8243;),<br />
                                         double.Parse(&#8220;59959406895756536782107074926966537676326235447210&#8243;),<br />
                                         double.Parse(&#8220;69793950679652694742597709739166693763042633987085&#8243;),<br />
                                         double.Parse(&#8220;41052684708299085211399427365734116182760315001271&#8243;),<br />
                                         double.Parse(&#8220;65378607361501080857009149939512557028198746004375&#8243;),<br />
                                         double.Parse(&#8220;35829035317434717326932123578154982629742552737307&#8243;),<br />
                                         double.Parse(&#8220;94953759765105305946966067683156574377167401875275&#8243;),<br />
                                         double.Parse(&#8220;88902802571733229619176668713819931811048770190271&#8243;),<br />
                                         double.Parse(&#8220;25267680276078003013678680992525463401061632866526&#8243;),<br />
                                         double.Parse(&#8220;36270218540497705585629946580636237993140746255962&#8243;),<br />
                                         double.Parse(&#8220;24074486908231174977792365466257246923322810917141&#8243;),<br />
                                         double.Parse(&#8220;91430288197103288597806669760892938638285025333403&#8243;),<br />
                                         double.Parse(&#8220;34413065578016127815921815005561868836468420090470&#8243;),<br />
                                         double.Parse(&#8220;23053081172816430487623791969842487255036638784583&#8243;),<br />
                                         double.Parse(&#8220;11487696932154902810424020138335124462181441773470&#8243;),<br />
                                         double.Parse(&#8220;63783299490636259666498587618221225225512486764533&#8243;),<br />
                                         double.Parse(&#8220;67720186971698544312419572409913959008952310058822&#8243;),<br />
                                         double.Parse(&#8220;95548255300263520781532296796249481641953868218774&#8243;),<br />
                                         double.Parse(&#8220;76085327132285723110424803456124867697064507995236&#8243;),<br />
                                         double.Parse(&#8220;37774242535411291684276865538926205024910326572967&#8243;),<br />
                                         double.Parse(&#8220;23701913275725675285653248258265463092207058596522&#8243;),<br />
                                         double.Parse(&#8220;29798860272258331913126375147341994889534765745501&#8243;),<br />
                                         double.Parse(&#8220;18495701454879288984856827726077713721403798879715&#8243;),<br />
                                         double.Parse(&#8220;38298203783031473527721580348144513491373226651381&#8243;),<br />
                                         double.Parse(&#8220;34829543829199918180278916522431027392251122869539&#8243;),<br />
                                         double.Parse(&#8220;40957953066405232632538044100059654939159879593635&#8243;),<br />
                                         double.Parse(&#8220;29746152185502371307642255121183693803580388584903&#8243;),<br />
                                         double.Parse(&#8220;41698116222072977186158236678424689157993532961922&#8243;),<br />
                                         double.Parse(&#8220;62467957194401269043877107275048102390895523597457&#8243;),<br />
                                         double.Parse(&#8220;23189706772547915061505504953922979530901129967519&#8243;),<br />
                                         double.Parse(&#8220;86188088225875314529584099251203829009407770775672&#8243;),<br />
                                         double.Parse(&#8220;11306739708304724483816533873502340845647058077308&#8243;),<br />
                                         double.Parse(&#8220;82959174767140363198008187129011875491310547126581&#8243;),<br />
                                         double.Parse(&#8220;97623331044818386269515456334926366572897563400500&#8243;),<br />
                                         double.Parse(&#8220;42846280183517070527831839425882145521227251250327&#8243;),<br />
                                         double.Parse(&#8220;55121603546981200581762165212827652751691296897789&#8243;),<br />
                                         double.Parse(&#8220;32238195734329339946437501907836945765883352399886&#8243;),<br />
                                         double.Parse(&#8220;75506164965184775180738168837861091527357929701337&#8243;),<br />
                                         double.Parse(&#8220;62177842752192623401942399639168044983993173312731&#8243;),<br />
                                         double.Parse(&#8220;32924185707147349566916674687634660915035914677504&#8243;),<br />
                                         double.Parse(&#8220;99518671430235219628894890102423325116913619626622&#8243;),<br />
                                         double.Parse(&#8220;73267460800591547471830798392868535206946944540724&#8243;),<br />
                                         double.Parse(&#8220;76841822524674417161514036427982273348055556214818&#8243;),<br />
                                         double.Parse(&#8220;97142617910342598647204516893989422179826088076852&#8243;),<br />
                                         double.Parse(&#8220;87783646182799346313767754307809363333018982642090&#8243;),<br />
                                         double.Parse(&#8220;10848802521674670883215120185883543223812876952786&#8243;),<br />
                                         double.Parse(&#8220;71329612474782464538636993009049310363619763878039&#8243;),<br />
                                         double.Parse(&#8220;62184073572399794223406235393808339651327408011116&#8243;),<br />
                                         double.Parse(&#8220;66627891981488087797941876876144230030984490851411&#8243;),<br />
                                         double.Parse(&#8220;60661826293682836764744779239180335110989069790714&#8243;),<br />
                                         double.Parse(&#8220;85786944089552990653640447425576083659976645795096&#8243;),<br />
                                         double.Parse(&#8220;66024396409905389607120198219976047599490197230297&#8243;),<br />
                                         double.Parse(&#8220;64913982680032973156037120041377903785566085089252&#8243;),<br />
                                         double.Parse(&#8220;16730939319872750275468906903707539413042652315011&#8243;),<br />
                                         double.Parse(&#8220;94809377245048795150954100921645863754710598436791&#8243;),<br />
                                         double.Parse(&#8220;78639167021187492431995700641917969777599028300699&#8243;),<br />
                                         double.Parse(&#8220;15368713711936614952811305876380278410754449733078&#8243;),<br />
                                         double.Parse(&#8220;40789923115535562561142322423255033685442488917353&#8243;),<br />
                                         double.Parse(&#8220;44889911501440648020369068063960672322193204149535&#8243;),<br />
                                         double.Parse(&#8220;41503128880339536053299340368006977710650566631954&#8243;),<br />
                                         double.Parse(&#8220;81234880673210146739058568557934581403627822703280&#8243;),<br />
                                         double.Parse(&#8220;82616570773948327592232845941706525094512325230608&#8243;),<br />
                                         double.Parse(&#8220;22918802058777319719839450180888072429661980811197&#8243;),<br />
                                         double.Parse(&#8220;77158542502016545090413245809786882778948721859617&#8243;),<br />
                                         double.Parse(&#8220;72107838435069186155435662884062257473692284509516&#8243;),<br />
                                         double.Parse(&#8220;20849603980134001723930671666823555245252804609722&#8243;),<br />
                                         double.Parse(&#8220;53503534226472524250874054075591789781264330331690&#8243;)<br />
                                     };<br />
            double result = numbers.Aggregate((x, y) =&gt; x + y);<br />
            return result.ToString().Substring(0, 11).Replace(&#8220;.&#8221;, string.Empty);<br />
        }</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torleif</title>
		<link>http://www.geekality.net/2009/10/04/project-euler-problem-13/#comment-286</link>
		<dc:creator>Torleif</dc:creator>
		<pubDate>Tue, 20 Apr 2010 06:04:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.geekality.net/?p=612#comment-286</guid>
		<description>Interesting. Do you have an example?</description>
		<content:encoded><![CDATA[<p>Interesting. Do you have an example?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John C</title>
		<link>http://www.geekality.net/2009/10/04/project-euler-problem-13/#comment-240</link>
		<dc:creator>John C</dc:creator>
		<pubDate>Mon, 29 Mar 2010 15:03:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.geekality.net/?p=612#comment-240</guid>
		<description>Nice brute force solution, but I think you&#039;re really missing the point of the exercise. The idea is that when you are adding n decimal numbers, there is an upper bound on the number of digits that can be carried over.

for example
999*100 = 99900
Do you notice how only 2 extra digits were introduced?

Thus, if you only need the first 10 digits, how many characters can you truncate from each string? You can safely truncate the numbers because any potential carry-over digits can only reach &quot;so far&quot; from the end</description>
		<content:encoded><![CDATA[<p>Nice brute force solution, but I think you&#8217;re really missing the point of the exercise. The idea is that when you are adding n decimal numbers, there is an upper bound on the number of digits that can be carried over.</p>
<p>for example<br />
999*100 = 99900<br />
Do you notice how only 2 extra digits were introduced?</p>
<p>Thus, if you only need the first 10 digits, how many characters can you truncate from each string? You can safely truncate the numbers because any potential carry-over digits can only reach &#8220;so far&#8221; from the end</p>
]]></content:encoded>
	</item>
</channel>
</rss>

