6
$\begingroup$

This is in relation to the Euler Problem $13$ from http://www.ProjectEuler.net.

Work out the first ten digits of the sum of the following one-hundred $50$-digit numbers.

$37107287533902102798797998220837590246510135740250$

Now, this was my thinking:

I can freely discard the last fourty digits and leave the last ten.

$0135740250$

And then simply sum those. This would be large enough to be stored in a $64$-bit data-type and a lot easier to compute. However, my answer isn't being accepted, so I'm forced to question my logic.

However, I don't see a problem. The last fourty digits will never make a difference because they are at least a magnitude of $10$ larger than the preceding values and therefore never carry backwards into smaller areas. Is this not correct?

$\endgroup$
7
  • 8
    $\begingroup$ I think you're counting from the wrong end... $\endgroup$ Commented Jul 20, 2010 at 20:33
  • $\begingroup$ This problem is actually small enough to use a BigNum implementation, like BigInteger in .NET 4.0. $\endgroup$ Commented Jul 20, 2010 at 20:33
  • $\begingroup$ @Morrison: What do you mean? The smallest numbers always start at the right? @Gietzen: I think I'll try that with my next approach, thanks for the idea. $\endgroup$
    – IAE
    Commented Jul 20, 2010 at 20:37
  • $\begingroup$ "First" is ambiguous. Ten leftmost or ten rightmost? I believe the people at Project Euler want the former. $\endgroup$
    – badp
    Commented Jul 20, 2010 at 21:05
  • $\begingroup$ They are asking for first ten digits so you need to calculate the whole answer and then show the first 10 digits as answer $\endgroup$
    – Himadri
    Commented Jul 22, 2010 at 5:06

2 Answers 2

10
$\begingroup$

If you were supposed to find the last ten digits, you could just ignore the first 40 digits of each number. However you're supposed to find the first ten digits, so that doesn't work. And you can't just ignore the last digits of each number either because those can carry over.

$\endgroup$
6
$\begingroup$

First you are doing it in the wrong end, second, the statement in general is still not correct.

for example:

9999999999
1000000001

Say if you want the first 2 digits, you will get 10 if you discard the last 2 digit and do the sum. The right answer is 11

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .