双十一到了,程序员小王打算在这天向心怡的女孩丽丽表白,他打算用代码表达出他的“心意”。他准备画两个爱心图案,输入数字1,出现一个镂空的心形;输入数字2,出现一个由字符串I love you!组成的心形。具体形状请看测试说明和测试集。 提示: 1心形公式:(x 2 +y 2 −1) 3 −x 2 ∗y 3 =0 参数范围: x [-1.2 , 1.2 ] y [-1.101 , 1.3 ] 2心形公式:x 2 +(5.0∗y/4.0−sqrt(∣x∣)) 2 =1 参数范围: x [-1.1 , 1.1 ] y [-1.1 , 1.3 ] 编程要求 请在右侧编辑器中填充代码,补全love(int n)函数,实现输出指定心形的功能(具体输出以测试集为准)。package step4; public class Task { public void love(int n){ /********* Begin *********/ /********* End *********/ } }
时间: 2023-07-01 21:28:50 浏览: 190
R语言画心形图-用于表白
根据题目要求,可以使用Java语言编写如下代码:
```java
package step4;
public class Task {
public void love(int n){
if (n == 1) {
for (double y = 1.3; y > -1.3; y -= 0.1) {
for (double x = -1.2; x < 1.2; x += 0.05) {
double a = x * x + y * y - 1;
double b = a * a * a - x * x * y * y * y;
System.out.print(b <= 0.0 ? "❤" : " ");
}
System.out.println();
}
} else if (n == 2) {
for (double y = 1.3; y > -1.3; y -= 0.1) {
for (double x = -1.1; x < 1.1; x += 0.025) {
double a = x * x + (y - Math.sqrt(Math.abs(x))) * (y - Math.sqrt(Math.abs(x))) - 1;
System.out.print(a * a * a - x * x * (y - Math.sqrt(Math.abs(x))) * (y - Math.sqrt(Math.abs(x))) * a <= 0.0 ? "❤" : " ");
}
System.out.println();
}
} else {
System.out.println("输入参数有误,请输入1或2。");
}
}
}
```
其中,love(int n)函数的参数n表示要输出的心形类型,当n为1时,输出空心的心形;当n为2时,输出由字符串"I love you!"组成的心形。在函数内部,根据题目给出的公式和参数范围,使用两层循环遍历每个坐标点,并判断该点是否在心形内部,输出相应字符即可。
阅读全文