1 package Training;
 2
 3 /**
 4  * 打印菱形
 5  *
 6  * @author Administrator
 7  * @version 1.0
 8  */
 9 public class Diamond14 {
10
11     public static void main(String[] args) {
12         int line = 8;// 行数
13         int rank = 8;// 列数
14         getDiamondPicture(7, 7);// 行列数相等 且 同为奇数 的菱形
15         getDiamondPicture2(line, rank);// 行列数同为偶数 的菱形
16     }
17
18     /**
19      * 这个函数绘制 行列数相等 且 同为奇数 的菱形;
20      *
21      * @param line
22      *            总行数
23      * @param rank
24      *            总列数
25      *
26      */
27     private static void getDiamondPicture(int line, int rank) {
28         int r = (rank / 2) + 1;
29         int mid = r;
30         for (int i = 1; i <= line; i++) {
31             // 打印上半部分
32             if (i <= mid) {
33                 for (int j = 1; j <= r; j++) {
34                     if (j <= mid - i) {
35                         System.out.print(' ');
36                     } else {
37                         System.out.print('*');
38                     }
39                 }
40                 if (r < line) {
41                     r++;
42                 }
43                 System.out.println();
44             }
45             // 打印下半部分
46             else {
47                 r--;
48                 for (int j = 0; j < r; j++) {
49                     if (j + mid < i) {
50                         System.out.print(' ');
51                     } else {
52                         System.out.print('*');
53                     }
54                 }
55                 System.out.println();
56             }
57         }
58     }
59
60     /**
61      * 这个函数绘制 行列数同为偶数 的菱形
62      *
63      * @param line
64      * @param rank
65      */
66     private static void getDiamondPicture2(int line, int rank) {
67         for (int i = 0; i <= line; i++) {
68             for (int j = 0; j <= rank; j++) {
69                 if (isInRhombus(i, j, line, rank)) {
70                     System.out.print("*");
71                 } else {
72                     System.out.print(" ");
73                 }
74             }
75             System.out.println();
76         }
77     }
78
79     /**
80      * 判断
81      *
82      * @param x
83      * @param y
84      * @param m
85      * @param n
86      * @return
87      */
88     private static boolean isInRhombus(int x, int y, int m, int n) {
89         int s = m * n;
90         if (2 * n * x + 2 * m * y >= s && 2 * n * x - 2 * m * y <= s && -2 * n * x + 2 * m * y <= s
91                 && 2 * n * x + 2 * m * y <= 3 * s) {
92             return true;
93         }
94
95         return false;
96     }
97 }

转载于:https://www.cnblogs.com/MoRua/p/8515060.html

JAVA题目:打印出如下图案(菱形)相关推荐

  1. C语言【程序21】 题目:打印出如下图案(菱形)

    /*[程序21] 题目:打印出如下图案(菱形)********* **************** */ #include<stdio.h> int main() {int i,j;for ...

  2. 题目:python 打印出如下图案(菱形):

    # 题目:打印出如下图案(菱形): # # * # *** # ***** # ******* # ***** # *** # * nu = 1 # 开始值 k = 2 # 变量值 while nu ...

  3. java 打印出如下图案(菱形)

    题目: 打印出如下图案(菱形) 程序分析: 先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列. 代码部分: public class Prog ...

  4. Python 练习实例23 题目:打印出如下图案(菱形)

    Python 练习实例23 Python 100例 Python 100例 题目:打印出如下图案(菱形): 解答: for i in range(1,5):print(' '*(4-i),end='' ...

  5. Java:用Java程序打印出所有的 “水仙花数 ”。

    题目: 利用Java程序打印出所有的 "水仙花数 ".所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花数 ...

  6. python使用循环结构编程打印出如下图案_使用双层for循环编写程序,在屏幕上打印输出如下图案...

    展开全部 回答即可62616964757a686964616fe59b9ee7ad9431333361303561得2分经验值第三章 循环程序在编程中经常遇到需要多次规律相同的重复处理,这就是循环问题 ...

  7. python 如何用*号打印出等腰三角形和菱形

    在学习python的循环语句时,老师经常会要求我们用循环语句打印出三角形或菱形,今天俺就来演示演示如何用*打印出图形. 1.首先来看看如何打印出等腰三角形(如图): layer = int(input ...

  8. java日历打印出的格式不对_Java打印某年某月的日历 没有错误但是运行出的月份与实际不符 求大神指导...

    Java打印某年某月的日历 没有错误但是运行出的月份与实际不符 求大神指导 我看了一下日历,发现你打出来的其实是九月份而不是八月份,那么我猜在showPrint这里的第二个参数是从0开始的,即0~11 ...

  9. 【Python AsciiArt】利用命令行打印出字符图案

    利用字符串生成工具可以方便的打印出自己想要字符图案,以及如何将图片转换为ASCII ART输出. 最终可以用命令行输出各种彩色图像---->> 一般字符图案 我们在使用一些开源软件的时候, ...

  10. 使用Java语言打印一个爱心图案

    我们可以使用Java的输出语句来打印一个爱心图案.下面是一个简单的爱心图案的Java程序: public class PrintLove {public static void main(String ...

最新文章

  1. Clusterware 和 RAC 中的域名解析的配置校验和检查 (文档 ID 1945838.1)
  2. maven详解之生命周期与插件
  3. 某云数据中心网络解决方案(分享二十一)
  4. Windows下卸载Oracle
  5. PowerDesigner中设置数据库类型,设置default value,Comment,自增属性,以及数据库设计中的需要考虑的示项,带有小数点的数据显示
  6. php rmdir 返回值,php通过rmdir删除目录的简单用法
  7. java的debug模式_java第六章:debug模式介绍及大量实例练习
  8. 大数据_Hbase-API访问_Java操作Hbase_MR-数据迁移-代码测试---Hbase工作笔记0017
  9. 如何在Xcode 4中“添加现有框架”?
  10. Linux操作系统引导过程及MBR扇区故障解决
  11. 在linux下 配置内网ip`
  12. 硬盘的修复(三)恢复删除文件
  13. Mybatis-There is no getter for property named 'tj' in 'class
  14. 如何以活动价在官网购买百度网盘会员
  15. AtCoder Regular Contest 071 C - 怪文書 / Dubious Document
  16. 远控软件GHOST源码免杀
  17. 坐标系统概念(转载)
  18. 查看window7 是否永久激活
  19. Android 解屏代码
  20. 秋招面试总结(计算机视觉、3D算法、三维重建、相机标定等岗位)

热门文章

  1. HTTP Status 404 - Not Found的一种情况
  2. 03-PS-套索工具组及快速选择工具组
  3. python闭包函数的延迟绑定
  4. 【十九】springboot整合ElasticSearch实战(万字篇)
  5. Linux下execl函数学习
  6. 现代人工智能的载体——计算机
  7. 基于Arduino的智能家居语音识别系统设计
  8. 如何将图片转化为表格?分享一个转换的方法
  9. HTC G7上网设置和简单操作
  10. 数据行业从业者到底能挣多少钱?