打印大X

题目描述
如下的程序目的是在控制台打印输出大X。
可以控制两个参数:图形的高度,以及笔宽。 用程序中的测试数据输出效果:
(如果显示有问题,可以参看p1.png) 高度=15, 笔宽=3
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
*****
***
*****
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
高度=8, 笔宽=5
***** *****
**********
********
******
******
********
**********
***** ***** 请仔细分析程序流程,填写缺失的代码。



PS:

这题的思路,有图形,且确实填空代码不报错的情况。快捷的办法就是先运行一遍,结果发现缺失的代码对应每个图形的类似部位,都在中间,这样就有思路了,这样在认真读题,结合残缺图形,很容易得到答案,

我之前有发过一题,也是打印大X,个人觉得我的算法至少在代码简洁度上比这个要好得多,其他的效率什么的就不太清除了,欢迎大家找我讨论;

首先,看看没有这一行执行是什么样子



证明,填写的地方就是交叉的地方,并且是打印*的地方,只有一行

q永远是大的,p永远是小的

当向中间靠拢的时候他们的差是比较小的

		  int a1 = 0;
int a2 = h - 1;
int p = Math.min(a1,a2);
int q = Math.max(a1+w,a2+w);

既然是代码填空题,想不明白的时候多试试,结果就出来了

好记性不如烂笔头,尝试才能出结果,空想就真的空了

下面附上整体代码

package Lqb;

public class Text32 {
public static void main(String[] args) {
f(15,3);
f(8,5);
}
static void f(int h, int w){
System.out.println(String.format("高度=%d, 笔宽=%d",h,w));
int a1 = 0;
int a2 = h - 1; for(int k=0; k<h; k++){
int p = Math.min(a1,a2);
int q = Math.max(a1+w,a2+w); for(int i=0; i<p; i++) System.out.print(" "); if(q-p<w*2){
for(int i=0; i<q-p; i++) System.out.print("*"); ; //填空
}
else{
for(int i=0; i<w; i++) System.out.print("*");
for(int i=0; i<q-p-w*2; i++) System.out.print(" ");
for(int i=0; i<w; i++) System.out.print("*");
}
System.out.println();
a1++;
a2--;
}
}
}

最新文章

  1. [转]大数据hadoop集群硬件选择
  2. Oracle global database name与db link的纠缠关系
  3. Lucene 4.7 --实现搜索
  4. office 使用技巧
  5. TableViewCell自定义分割线
  6. Spark目录
  7. addEventListener 用法
  8. 查询本天气预报Web Services支持的国内外城市或地区信息
  9. 生成二维码的js以及调用打印插件
  10. 用html和css轻松实现康奈尔笔记(5R笔记)模板
  11. C# EntityFramework Code First 迁移
  12. firewall centos
  13. Python __dict__属性详解
  14. Linux基础知识之bashrc和profile的用途和区别
  15. .net ML机器学习中遇见错误记录
  16. WIN10在loadrunner安装或path4插件安装时遇到的管理员阻止程序运行---解决方案(可用)
  17. [luogu4462][异或序列]
  18. 伪造请求IP
  19. java开发_&quot;&quot;和null的区别
  20. jq禁用html标签

热门文章

  1. Centos 编译带调试信息的libevent
  2. tp5 一次性插入大量数据时分批处理
  3. 记一次Oracle分区表全局索引重建的过程
  4. Codeforces Round #643 (Div.2)
  5. 9、AutoResponder返回本地数据(mock)
  6. mysql5.6 thread pool
  7. RN概述
  8. Python PIL Image图片显示系列
  9. CF551B
  10. Kd Tree算法详解