qq_33242378 2016-07-21 02:55 采纳率: 50%
浏览 1309

请问(i+1)*2是如何推算出来的呢

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

*






*   

public class lianxi19 {
public static void main(String[] args) {
int H = 7, W = 7;//高和宽必须是相等的奇数
for(int i=0; i<(H+1) / 2; i++) {
for(int j=0; j<W/2-i; j++) {
System.out.print(" ");
}
for(int k=1; k<(i+1)*2; k++) {
System.out.print('*');
}
System.out.println();
}
for(int i=1; i<=H/2; i++) {
for(int j=1; j<=i; j++) {
System.out.print(" ");
}
for(int k=1; k<=W-2*i; k++) {
System.out.print('*');
}
System.out.println();
}
}
}
大神们好,请问i<(H+1) / 2 j<W/2-i i<=H/2 j<=i k<=W-2*i这些关系式是如何推算出来的呢,万分感谢

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-07-21 03:46
    关注
     这个很简单,打印一个菱形,可以分为上下两部分,各为一个等腰三角形。
    这个等腰三角形的高度,是菱形高度)的一半(当高度为偶数)或者(高度+1)的一半(当高度为奇数),所有是  (H+1)/2
    上下两半对称,这里只讨论上面一半,对于第i行,先输出空格, 再输出星号。输出多少空格呢?显然是W/2-i+1个,然后输出(i+1)*2个*
    
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码