社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
要求:利用java语言编写算法在控制台打印爱心算法(根据输入参数的大小决定爱心的大小);
输入6
输入8
输入10
相信大家在学习算法的时候都有过这个想法,做一个爱心,以为只有这样子我们程序猿才能找到女盆友,获得女盆友的芳心。
可能大家会觉得比较难,根据这个爱心的形状不知道怎么分析,任何事物只要你仔细的分析都是有规律可巡的,最底层的算法就是找规律(相信大家小时候没少找规律吧!),来今天我来教大家用最sb的方法写这个爱心,希望我也能因此找到那个她
思路:
其实这个爱心就是三个三角形,上面两个(少了一个顶),下面一个(倒立),就完了
还有就是要根据输入的参数找到打印 “ * ” 的规律:
假如我们输入的参数的k
最上面两个三角形的底部为k-2个星号,最下面的倒立三角形的底部为(2*k)-1个星号
最主要的是上面两个三角形少一个顶
最后直接贴代码,代码非常简单大家都看得懂
public static void main(String[] args) {
System.out.println("请输入一个的按预定偶数:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if (a > 2 && a % 2 == 0) {
aixing(a);
} else {
System.out.println("输入的数据不正确请重新输入!");
}
}
public static void aixing(int ai) {
int Q = ai / 2 - 1; // 确定上面部分的行数
int W = ai - 2; // 确定上面部分底部的星号个数
// 循环得到上面部分
for (int i = 1; i <= Q; i++) {
// 得到第一个空格三角形
for (int a = Q; a > i - 1; a--) {
System.out.print(" ");
System.out.print(" ");
}
// 得到第一个突出的三角形
for (int b = 1; b < i + 1; b++) {
System.out.print("*");
System.out.print(" ");
}
for (int d = 1; d < i + 1; d++) {
System.out.print("*");
System.out.print(" ");
}
// 得到中间的空格三角形
for (int r = Q; r >= i + 1; r--) {
System.out.print(" ");
System.out.print(" ");
}
for (int t = Q + 1; t >= i + 1; t--) {
System.out.print(" ");
System.out.print(" ");
}
// 得到后面的突出三角形
for (int b = 1; b < i + 1; b++) {
System.out.print("*");
System.out.print(" ");
}
for (int d = 1; d < i + 1; d++) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
}
// 下面部分
for (int w = 1; w <= ai; w++) {
for (int e = 1; e < w; e++) {
System.out.print(" ");
System.out.print(" ");
}
for (int r = ai; r >= w; r--) {
System.out.print("*");
System.out.print(" ");
}
for (int t = ai; t > w; t--) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
}
}
大家按照我这个方法写出来的代码运行会发现一个点:
那就是只能在控制台输入偶数,因为这个规律我是按照偶数的思路去想的,大家可以尝试其他的思路
我这个方法是最繁琐的办法,还有很多简单的方法,最主要的循环次数多了,代码效率会减低!我这里不提供另外的一种简便方法了,大家可以自己思考(其实也就是这个思路,只不过循环次数减少了很多)
最后希望大家都能找到女盆友!!!
的方法,最主要的循环次数多了,代码效率会减低!我这里不提供另外的一种简便方法了,大家可以自己思考(其实也就是这个思路,只不过循环次数减少了很多)
最后希望大家都能找到女盆友!!!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!