# Draw a circle without floating point arithmetic

• Difficulty Level : Hard
• Last Updated : 21 Jun, 2022

Given a radius of a circle, draw the circle without using floating point arithmetic.
Following program uses a simple concept. Let the radius of the circle be r. Consider a square of size (2r+1)*(2r+1) around the circle to be drawn. Now walk through every point inside the square. For every  point (x,y), if (x, y) lies inside the circle (or  x2+ y2 < r2), then print it, otherwise print space.

Approach:

1. draw the rectangle

2. check if the point lie inside or on the circle using formula  x2+ y2 < r2.

3. If it fulfill the condition print the star else print blank space

Algorithm:

Step 1: Take the input of radius

Step 2: Calculate the size of rectangle

Step 3: Draw the rectangle using the nested for loop

Step 4: Start coordinates from left most corner

Step 5: Check if the coordinates lie inside the circle, if yes Print the star else print blank space.

## C++

 `// C++ code to demonstrate to draw``// circle without floating``// point arithmetic``#include ` `void` `drawCircle(``int` `r)``{``    ``// Consider a rectangle of size N*N``    ``int` `N = 2*r+1;` `    ``int` `x, y;  ``// Coordinates inside the rectangle` `    ``// Draw a square of size N*N.``    ``for` `(``int` `i = 0; i < N; i++)``    ``{``        ``for` `(``int` `j = 0; j < N; j++)``        ``{``            ``// Start from the left most corner point``            ``x = i-r;``            ``y = j-r;` `            ``// If this point is inside the circle, print it``            ``if` `(x*x + y*y <= r*r+1 )``                ``printf``(``"."``);``            ``else` `// If outside the circle, print space``                ``printf``(``" "``);``            ``printf``(``" "``);``        ``}``        ``printf``(``"\n"``);``    ``}``}` `// Driver Program to test above function``int`  `main()``{``    ``drawCircle(8);``    ``return` `0;``}`

## Java

 `// Java code to demonstrate to draw``// circle without floating``// point arithmetic` `class` `GFG``{``static` `void` `drawCircle(``int` `r)``{``    ``// Consider a rectangle of size N*N``    ``int` `N = ``2``*r+``1``;` `    ``int` `x, y; ``// Coordinates inside the rectangle` `    ``// Draw a square of size N*N.``    ``for` `(``int` `i = ``0``; i < N; i++)``    ``{``        ``for` `(``int` `j = ``0``; j < N; j++)``        ``{``            ``// Start from the left most corner point``            ``x = i-r;``            ``y = j-r;` `            ``// If this point is inside the circle, print it``            ``if` `(x*x + y*y <= r*r+``1` `)``                ``System.out.print(``"."``);``            ``else``                ``// If outside the circle, print space``                ``System.out.print(``" "``);` `            ``System.out.print(``" "``);``        ``}` `        ``System.out.println();``    ``}``}` `// Driver Program to test above function``public` `static` `void` `main(String arg[])``{``    ``drawCircle(``8``);``}``}` `// This code is contributed``// by Anant Agarwal.`

## Python3

 `# Python3 code to demonstrate to draw``# circle without floating``# point arithmetic` `def` `drawCircle(r):` `    ``# Consider a rectangle of size N*N``    ``N ``=` `2` `*` `r ``+` `1` `    ``# Draw a square of size N*N.``    ``for` `i ``in` `range``(N):``        ``for` `j ``in` `range``(N):` `            ``# Start from the left most corner point``            ``x ``=` `i ``-` `r``            ``y ``=` `j ``-` `r` `            ``# If this point is inside the circle,``            ``# print it``            ``if` `x ``*` `x ``+` `y ``*` `y <``=` `r ``*` `r ``+` `1``:``                ``print``(``"."``, end ``=` `" "``)``                ` `            ``# If outside the circle, print space``            ``else``:``                ``print``(``" "``, end ``=` `" "``)``        ``print``()` `# Driver Code``if` `__name__ ``=``=` `"__main__"``:``    ``drawCircle(``8``)` `# This code is contributed``# by vibhu4agarwal`

## C#

 `// C# code to demonstrate to draw``// circle without floating``// point arithmetic``using` `System;` `public` `class` `GFG{``    ``static` `void` `drawCircle(``int` `r)``{``    ``// Consider a rectangle of size N*N``    ``int` `N = 2*r+1;` `    ``int` `x, y; ``// Coordinates inside the rectangle` `    ``// Draw a square of size N*N.``    ``for` `(``int` `i = 0; i < N; i++)``    ``{``        ``for` `(``int` `j = 0; j < N; j++)``        ``{``            ``// Start from the left most corner point``            ``x = i-r;``            ``y = j-r;` `            ``// If this point is inside the circle, print it``            ``if` `(x*x + y*y <= r*r+1 )``                ``Console.Write(``"."``);``            ``else``                ``// If outside the circle, print space``                ``Console.Write(``" "``);` `            ``Console.Write(``" "``);``        ``}` `        ``Console.WriteLine();``    ``}``}` `// Driver Program to test above function``    ``static` `public` `void` `Main (){``        ``drawCircle(8);``    ` `     ` `    ``}``// This code is contributed``// by ajit.``}`

## PHP

 ``

## Javascript

 ``

Output:

Time Complexity: O(N2)

Space Complexity: O(N2)