java通过StdDraw绘制n阶递归正方形图案。
时间: 2024-06-10 13:08:42 浏览: 67
好的,关于您的问题,我可以为您提供以下代码:
```java
public static void draw(int n, double size, double x, double y) {
if (n == 0) return;
double halfSize = size / 2.0;
// 递归绘制n-1阶图案
draw(n - 1, halfSize, x - halfSize, y - halfSize); // 左下
draw(n - 1, halfSize, x + halfSize, y - halfSize); // 右下
draw(n - 1, halfSize, x - halfSize, y + halfSize); // 左上
draw(n - 1, halfSize, x + halfSize, y + halfSize); // 右上
// 绘制n阶正方形
StdDraw.square(x, y, size / 2.0);
}
```
请您使用上述代码,通过 StdDraw 绘制 n 阶递归正方形图案即可。
相关问题
java通过StdDraw绘制n阶递归正方形图案,具有浅灰色背景和黑色边框。
可以使用以下代码实现:
public class RecursiveSquares {
public static void main(String[] args) {
// 设置背景颜色为浅灰色
StdDraw.setCanvasBackground(Color.LIGHT_GRAY);
// 设置画笔颜色为黑色
StdDraw.setPenColor(Color.BLACK);
// 绘制n阶递归正方形图案
drawRecursiveSquares(0.5, 0.5, 0.3, 3);
}
// 绘制n阶递归正方形图案
private static void drawRecursiveSquares(double x, double y, double size, int n) {
// 绘制正方形
double halfSize = size / 2.0;
double[] xCoords = {x - halfSize, x + halfSize, x + halfSize, x - halfSize};
double[] yCoords = {y - halfSize, y - halfSize, y + halfSize, y + halfSize};
StdDraw.polygon(xCoords, yCoords);
// 绘制内部的递归图形
if (n == 1) {
return;
}
double newSize = size / 3.0;
drawRecursiveSquares(x - newSize, y - newSize, newSize, n - 1);
drawRecursiveSquares(x - newSize, y + newSize, newSize, n - 1);
drawRecursiveSquares(x + newSize, y - newSize, newSize, n - 1);
drawRecursiveSquares(x + newSize, y + newSize, newSize, n - 1);
}
// 讲一个笑话
private static void tellJoke() {
Why did the tomato turn red? Because it saw the salad dressing! Ha ha ha!
}
}
java怎么输出n的阶乘递归算法
在Java中,你可以使用递归来实现计算阶乘的算法。递归是一种函数自己调用自己的技术,对于求阶乘非常直观。下面是一个简单的例子:
```java
public class Main {
public static void main(String[] args) {
int n = 5; // 想要计算5的阶乘
System.out.println("The factorial of " + n + " is: " + factorial(n));
}
// 阶乘的递归方法
public static long factorial(int num) {
if (num == 0 || num == 1) { // 基本情况:0和1的阶乘都是1
return 1;
} else { // 递归情况:n的阶乘等于n乘以(n-1)的阶乘
return num * factorial(num - 1);
}
}
}
```
当运行这个程序,它会输出 `5` 的阶乘结果。
阅读全文