Задача Generate Rectangles ???
Здравейте колеги или аз не съм добре или програмата не е както трябва:
Кода дава само 20/100 и не мога да разбера защо.
Ето го Условието на Задачата:
Задача: генериране на правоъгълници
По дадено число n и минимална площ m да се генерират всички правоъгълници с цели координати в интервала [-n…n] с площ поне m. Генерираните правоъгълници да се отпечатат в следния формат:
(left, top) (right, bottom) -> area
Правоъгълниците се задават чрез горния си ляв и долния си десен ъгъл. В сила са следните неравенства:
- -n ≤ left < right ≤ n
- -n ≤ top < bottom ≤ n
Вход
От конзолата се въвеждат две числа, по едно на ред:
- Цяло число n в интервала [1 … 100] – задава минималната и максималната координата на връх.
- Цяло число m в интервала [0 … 50000] – задава минималната площ на генерираните правоъгълници.
Изход
- На конзолата трябва да се отпечатат описаните правоъгълници във формат като в примерите по-долу.
- Ако за числата n и m няма нито един правоъгълник, да се изведе “No”.
- Редът на извеждане на правоъгълниците е без значение.
Ето го и кода ми:
import java.util.Scanner; public class GenerateRectangles { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = Integer.parseInt(scanner.nextLine()); int m = Integer.parseInt(scanner.nextLine()); int count = 0; for (int left = -n; left < n; left++) { for (int top = -n; top < n; top++) { for (int right = left + 1; right <= n; right++) { for (int bottom = right + 1; bottom <= n; bottom++) { int area = Math.abs(right - left) * Math.abs (bottom - top); if (area <= m) { System.out.printf("(%d, %d) (%d, %d) -> %d%n", left, top, right, bottom, area); count++; } } } } } if (count == 0) { System.out.println("No"); } } }
Не мога да открия грешката при вход 3,36 изходът трябва да (-3, -3) (3, 3) -> 36 а при тоя код печата "No".
Благодаря Предварително.