Computer Science Canada

Integer overflow in real8 div.

Author:  person [ Wed Mar 09, 2005 6:00 pm ]
Post subject:  Integer overflow in real8 div.

how do i solve this problem when it says: "Integer overflow in real8 div."???

thanx in advance

Author:  Flikerator [ Wed Mar 09, 2005 6:06 pm ]
Post subject:  Re: Integer overflow in real8 div.

person wrote:
how do i solve this problem when it says: "Integer overflow in real8 div."???

thanx in advance


Can I see the code? It might help to solve it ^^

Usually when I get overflow it is because the number is an int and its too large.

Author:  person [ Wed Mar 09, 2005 6:07 pm ]
Post subject: 

code:

var num : int
var ans : real := 1
var a := 0
get num
for x : 1 .. num
    ans := ans * x
end for
for decreasing x : num .. 1
    a := 0
    for decreasing y : num .. 1
        if (ans / x) / y = (ans / x) div y then % this line overflows
            a += 1
        end if
    end for
    if a = num then
        ans := ans / x
    end if
end for
var num : int
var ans : real := 1
var a := 0
get num
for x : 1 .. num
    ans := ans * x
end for
for decreasing x : num .. 1
    a := 0
    for decreasing y : num .. 1
        if (ans / x) / y = (ans / x) div y then
            a += 1
        end if
    end for
    if a = num then
        ans := ans / x
    end if
end for

Author:  Flikerator [ Wed Mar 09, 2005 6:10 pm ]
Post subject: 

I get an error message...Var previously declared.

Author:  person [ Wed Mar 09, 2005 6:12 pm ]
Post subject: 

D'oh (pressed ctrl+v twice)

anyways

code:

var num : int
var ans : real := 1
var a := 0
get num
for x : 1 .. num
    ans := ans * x
end for
for decreasing x : num .. 1
    a := 0
    for decreasing y : num .. 1
        if (ans / x) / y = (ans / x) div y then
            a += 1
        end if
    end for
    if a = num then
        ans := ans / x
    end if
end for

Author:  person [ Fri Mar 11, 2005 3:29 pm ]
Post subject: 

does anyone have any ideas to solving this problem??

Author:  ssr [ Fri Mar 11, 2005 3:52 pm ]
Post subject: 

srry no idea
but may be the type of input
just an idea
8)

Author:  Cervantes [ Fri Mar 11, 2005 4:30 pm ]
Post subject: 

Try changing
code:

if (ans / x) / y = (ans / x) div y then

to
code:

if (ans / x) / y = (ans / x) / y then

.

Author:  person [ Fri Mar 11, 2005 4:49 pm ]
Post subject: 

i did that so that i know that its an integer

Author:  Cervantes [ Fri Mar 11, 2005 5:12 pm ]
Post subject: 

So, that if statement is trying to determine whether ans / x / y is a whole number?
Lol, sorry, I really should have thought a bit about what I suggested in my above post.
Okay, what about:
code:

        if index (realstr (ans/x/y, 0), ".") > 0 then %if ans/x/y contains no decimals
            a += 1
        end if


btw, your avatar is really large. Please scale it down.

Author:  person [ Fri Mar 11, 2005 6:34 pm ]
Post subject: 

thanx Cervantes!!!

btw: hows this for the size of my avatar?

Author:  MysticVegeta [ Fri Mar 11, 2005 9:51 pm ]
Post subject: 

What are you trying to do btw? Wink

Author:  Token [ Fri Mar 11, 2005 10:34 pm ]
Post subject: 

yah person i like this avatar better then the other ones u were experimenting with today

Author:  person [ Sat Mar 12, 2005 11:05 am ]
Post subject: 

Quote:
What are you trying to do btw?


ECOO #1 (it works now)


: