File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes what am i doing wrong here? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Make it so: Java DB Connections & Transactions this week in the JDBC forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "what am i doing wrong here?" Watch "what am i doing wrong here?" New topic

what am i doing wrong here?

Randall Twede
Ranch Hand

Joined: Oct 21, 2000
Posts: 4351

euler 76 and 78 are very similar. i thought it would be a piece of cake. just have to use BigInteger instead of int

using BigInteger and adding one

this answer is correct

this returns 5997, and the System.out.println says 3000000
the correct answer is 55374
i tried changing
but get the same answer
i am guessing
if(ways[j].mod(limit) == BigInteger.ZERO)
is where the problem is, but not sure

Visit my download page
Martin Vajsar

Joined: Aug 22, 2010
Posts: 3728

I'd say you've nailed it. int is a primitive type and can be compared using ==. BigInteger is an object, for which the == operator compares references. You need to use the equals method instead.
Randall Twede
Ranch Hand

Joined: Oct 21, 2000
Posts: 4351

hmmm...i thought that would fix it but i get the same answer. i tried this also
same result
Jayesh A Lalwani
Saloon Keeper

Joined: Jan 17, 2008
Posts: 2723

Can you print out the intermediate values within the loop in both implementations. You might see why it's diverging

Also, I see there is slight differrence in code

In the first version you have

In the next 2 versions you have

Randall Twede
Ranch Hand

Joined: Oct 21, 2000
Posts: 4351

that difference is correct. #76 wants all combinations of 2 numbers that equal 100(up to 99 + 1).
#78 includes the case of all coins in one stack(100)
i might try it using long, but my guess is the number will be too big
I agree. Here's the link:
subject: what am i doing wrong here?
It's not a secret anymore!