入门经典编程题-菱形

网友投稿 658 2022-10-01

入门经典编程题-菱形

入门经典编程题-菱形

题目

打印出n行的菱形(n为奇数) 例如:输入5 打印出如下图案(菱形):

* *** ***** *** *

分析

单层循环 此实现方法需要去寻找图形之间的数学规律

双层循环 将图形分割成上下两部分 分别打印 第一层循环按行打印 第二层循环:循环打印空格,循环打印*号

Java实现

单层循环的实现

首先理解此图形的代码实现

* *** *****

public static void example05(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = 0; int mid = n/2; for (int i = 0; i < n*(n+1)/2; i++) { if (i % n == 0 && i != 0) { k++; mid += n; System.out.println(); } if ( mid-k <= i && i <= mid+k) { System.out.print("*"); }else{ System.out.print(" "); } } }

完整图形代码实现

public static void example05(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = 0; int mid = n/2; for (int i = 0; i < n*(n+1)-1; i++) { if (i % n == 0 && i != 0) { mid += n; if (i < n*(n+1)/2) k++; else k--; System.out.println(); } if ( mid-k <= i && i <= mid+k) { System.out.print("*"); }else{ System.out.print(" "); } } }

双循环打印

public static void example05_2(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = 0; int mid = n/2; for (int i = 0; i < mid+1; i++) { for (int j = 0; j < mid-k; j++) { System.out.print(" "); } for (int j = mid-k ; j <= mid+k; j++) { System.out.print("*"); } System.out.println(); k++; } k = k-2; for (int i = 0; i < mid ; i++) { for (int j = 0; j < mid-k; j++) { System.out.print(" "); } for (int j = mid-k ; j <= mid+k; j++) { System.out.print("*"); } System.out.println(); k--; } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:入门经典编程题-水仙花数
下一篇:公众号的作用是什么?(公众号有什么用处呢)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~