This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.

This is really weird, Im sure my code is correct, donno why the result is wrong, its supposed to be a huge number in the end I guess, but Im always getting 262660

Problem:

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

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

This ...

is more like... "Work out the sum of the ASCII values of all digits of the following one-hundred 50-digit numbers".

The problem never asked you to sum up the digits, it just asked you to ignore any digit higher than the 10th digit in the sum of the numbers. You also did a staight convert from char to num, which is the ASCII value, not the digit value (not that it matters as you weren't supposed to sum the digits anyway).

Henry [ March 23, 2008: Message edited by: Henry Wong ]

I still did not get it the problem, as I understand, wants the sum of the following one-hundred 50-digit numbers but since the number is huge, the first ten digits are enough to prove a person solved the problem... isn't this the problem? if not, can you explain it more? if I should not sum the digits up, then what should I do?

it just asked you to ignore any digit higher than the 10th digit in the sum of the numbers.

so I find the sum, and show the first ten digits then?

I still did not get it the problem, as I understand, wants the sum of the following one-hundred 50-digit numbers but since the number is huge, the first ten digits are enough to prove a person solved the problem... isn't this the problem?

Yup, you described it perfectly here.

if I should not sum the digits up, then what should I do?

How did you go from "sum of the numbers" to "sum of the digits"?

For example, lets use 3 numbers instead of 100. Let's use 4 digits numbers instead of 50 digits. And lets look at the first 2 digits instead of 10.

The numbers are...

1234 1001 4532

The sum is 1234 + 1001 + 4532 = 6767. And the first 2 digits are 67.

What you did is... 1 + 2 + 3 + 4 + 1 + 0 + 0 + 1 + 4 + 5 + 3 + 2 = 26. How is this even close?

Henry [ March 23, 2008: Message edited by: Henry Wong ]

Sam Benry
Ranch Hand

Joined: Mar 21, 2008
Posts: 89

posted

0

thanks, problem solved this is even easier than before...

You can omit the entire "add the int to an empty string" construction by using the String.valueOf methods. It's just a bit more efficient, gives the exact same results and also (IMHO) looks better.

If you are 100% sure these characters are all numbers, you can use the following code as well:

It's generally considered polite to name the source of your question. In this case, you are talking about problem #13 of Project Euler, a fantastic place to get little 'puzzlers' to learn a new computing language.

In the future, please let everyone know where these problems come from.

Thanks

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

We don't like to give out answers like that; please show us what you have already. And it might have been better to start a new thread; look at this deradfully-named FAQ!

Fred, I always get into disagreements about this, but there is nothing "little" about Project Euler tasks. They may take only a few lines to write, but as Sam Benry has demonstrated, they are *@*#$~ difficult!