其实用for嵌套时,可以将打印的*号看成是一象限上的点,第一个for为纵轴,第二个for为横轴.
将里面的*就是,坐标....下面的代码,为第一次试验做出心
[Java] 纯文本查看 复制代码 public class Heart {
public static void main(String[] args) {
for(int x=1;x<=5;x++){
for(int y=1;y<=7;y++){
if(x==1&&y==3){
System.out.print("**");
}
else if(x==1&&y==5){
System.out.print("**");
}
else if(x==2&&y==2){
System.out.print("**");
}
else if(x==2&&y==4){
System.out.print("**");
}
else if(x==2&&y==6){
System.out.print("**");
}
else if(x==3&&y==2){
System.out.print("**");
}
else if(x==3&&y==6){
System.out.print("**");
}
else if(x==4&&y==3){
System.out.print("**");
}
else if(x==4&&y==5){
System.out.print("**");
}
else if(x==5&&y==4){
System.out.print("**");
}
else
System.out.print(" ");
}
System.out.println("");
}
}
}
感觉心太小,就推理规律和通项公式,终于经过一个晚自习的时间,推出来了,虽然有点不完美,但还是不错了...哈哈哈
[Java] 纯文本查看 复制代码
import java.util.Scanner;
public class FinallyHeart {
public static void main(String[] args) {
while(true){
System.out.println("请输入数字..输入end结束");
String str = new Scanner(System.in).next();
if(str.equals("end")){
System.out.println("系统结束");
break;
}
printHeart(Integer.parseInt(str));
}
}
public static void printHeart(int n){
for(int x=1;x<=2+3*n;x++){
for(int y=1;y<=1+4*n;y++){
if(x==1){
if(y==1+n||y==3*n+1){
System.out.print("**");
continue;
}
}else if(1<x&&x<n+1){
if(y==n+x||y==3*n+x||y==2+n-x||y==3*n+2-x){
System.out.print("**");
continue;
}
}else if(x==1+n){
if(y==1||y==1+2*n||y==4*n+1){
System.out.print("**");
continue;
}
}else if(n+1<x&&x<2+3*n){
if(y==x-n-1||y==5*n+3-x){
System.out.print("**");
continue;
}
}else if(x==2+3*n){
if(y==1+2*n){
System.out.print("**");
continue;
}
}
System.out.print(" ");
}
System.out.println("");
}
}
}
缺点就是越大的心,棱角越明显,以后有时间就再改进吧......哈哈哈哈
给几个金币和技术分鼓励鼓励我吧.....嘿嘿嘿
|