33 lines
655 B
Plaintext
33 lines
655 B
Plaintext
void local fn EgyptianDivision
|
|
int table(32, 2)
|
|
int i = 1, dividend = 580, divisor = 34
|
|
int answer, accumulator
|
|
|
|
table(i, 1) = 1
|
|
table(i, 2) = divisor
|
|
|
|
while ( table( i, 2 ) < dividend )
|
|
i++
|
|
table(i, 1) = table(i - 1, 1) * 2
|
|
table(i, 2) = table(i - 1, 2) * 2
|
|
wend
|
|
i--
|
|
answer = table(i, 1)
|
|
accumulator = table(i, 2)
|
|
|
|
while ( i > 1 )
|
|
i--
|
|
if table(i, 2) + accumulator <= dividend
|
|
answer += table(i, 1)
|
|
accumulator += table(i, 2)
|
|
end if
|
|
wend
|
|
|
|
printf @"Using Egyptian Division %d / %d = %d remainder %d", dividend, divisor, answer, dividend - accumulator
|
|
end fn
|
|
|
|
|
|
fn EgyptianDivision
|
|
|
|
HandleEvents
|