# Thread: Circumference of circle to many decimal places

1. ## Circumference of circle to many decimal places

Hi Guys,
I was involved in a coding challenge to calculate 2 pi r,
the circumference of a circle, given the radius as input, without any multiplication, division, or floats,
so I pretended I was using an 8 bit pic It was done in C, but all variables were integers,
so hopefully this BASIC is a good representation. (only the C was tested).
Cheers

Code:
```   var word input = 300 ‘ input radius
var byte twopi[19] = { 0x00,0x00,0x00,0x06,0x02,0x08,0x03,0x01,0x08,0x05,0x03,0x00,0x07,0x01,0x07,0x09,0x05,0x09,0x00 }
var byte otput[19] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
var word adcnt = 0 ‘ counter
var byte dgcnt = 0 ‘ digit index
var byte carry = 0 ‘ carry digit

dgcnt = 17 : carry = 0
while (dgcnt > 0) ‘ cycle the digits
otput[dgcnt] = otput[dgcnt] + twopi[dgcnt] + carry : carry = 0 ‘ add digit
if (otput[dgcnt] > 9)
otput[dgcnt] = otput[dgcnt] - 10 : carry = 1
endif ‘ carry digit
dgcnt = dgcnt - 1
wend ‘ dgcnt
if (carry != 0)
otput[dgcnt] = otput[dgcnt] + 1
endif
twopi[18] = 0 // terminate string

// answer: 1884.9555921538758 is the string in the otput array```

2. ## Re: Circumference of circle to many decimal places

Nice idea! Thanks for sharing it.

How can you tell where the decimal dot would be?

Ioannis

3. ## Re: Circumference of circle to many decimal places

I think I made a mistake for BASIC. I don’t think you get to populate the first two arrays that way,
but in some program they would be populated at run time with the input received, so I guess that’s ok.

The addition is done the same way you were taught to do it on paper in primary school
You could insert a decimal point with a value such as \$2E in the input arrays somewhere, which would also require you keep them aligned.
For the constant Pi2, it just goes between the first 6 and the 2. Then if the input had a decimal point, the array would have to be rotated so that
for this example, the decimal point value is also at index 4 int he array. Ignore it in calculation, but remember it’s index to be passed through to the output.
Still just as you were taught in school on paper. The decimal point is there on paper, but you do nothing with it other than also print it for the output.
In any case of course, PBP doesn’t actually know the input or the output result as any variable of it’s own, but could still display it on a screen.

4. ## Re: Circumference of circle to many decimal places

The population is a C way and since you developed for C first it was expected I guess

Ioannis

5. ## Re: Circumference of circle to many decimal places

Art, if it's not too much trouble, I would love to see what the C code looked like.

Cheerful regards, Mike, K8LH

6. ## Re: Circumference of circle to many decimal places

Archimedes considered his greatest achievement working out the math to calculate the volume of a circle.

7. ## Re: Circumference of circle to many decimal places

A circle does't have volume! Very likely you meant Area.

Alberto
Last edited by Alberto; - 18th May 2018 at 22:03.

8. ## Re: Circumference of circle to many decimal places

Sorry, you're right, I meant volume of a sphere.