黑马程序员技术交流社区
标题:
打印三角形的问题
[打印本页]
作者:
谢宝盛
时间:
2012-11-28 18:31
标题:
打印三角形的问题
*
* *
* *
* *
* *
*********** 像这样的应该怎么做呢,光输出空格 *是能做 有没有更简单的呢,
作者:
林剑
时间:
2012-11-28 18:57
class Test8
{
public static void main(String[] args)
{
/*
-----*
----*-*
---*---*
--*-----*
-*-------*
***********
*/
for (int i=1;i<6 ;i++ )
{
for (int j =i;j<6 ;j++ )
{
System.out.print("-");
}
/*打印
-----
----
---
--
-
*/
System.out.print("*");//打印*
for (int s=0;s<2*i-3 ;s++ )
{
System.out.print("-");
}//打印两个星中间的—
if(2*i-3>0)
System.out.print("*");
System.out.println();
}
for (int t=0;t< 11;t++ )
{
System.out.print("*");//由于第一行只有一个*,所以要加条件判断下
}//最后一行比较特殊,单独打印
}
}
把-换成空格就是你要的输出图形了
思路就是将整个图形左边空白和中间空白用循环嵌套实现,最后一行单独输出,要是一定要加入循环也是可以的,加个条件判断下就行了
作者:
崔维友
时间:
2012-11-28 19:08
本帖最后由 崔维友 于 2012-11-28 19:12 编辑
我也凑凑热闹吧,楼上已经讲的很直白了:
可以分区打印,左边第一个星号之前的为一部分,从第一个星号开始再一部分。
class Oh
{
public static void main(String[] args)
{
//控制行数
for (int i=1; i<=10; i++)
{
//控制第一部分的空格数
for (int j=1; j<=11-i; j++)
{
System.out.print(" ");
}
//控制三角形部分
for (int k=1; k<=2*i-1; k++)
{
//边
if (k==1 || k==2*i-1)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
System.out.println();
}
//最底一行
for (int i=0; i<21; i++)
{
System.out.print("*");
}
}
}
复制代码
未命名.PNG
(3.24 KB, 下载次数: 16)
下载附件
2012-11-28 19:06 上传
不才博客中有几个例子可参考:http://blog.csdn.net/vigiles/article/details/8182801
------------------------------------------------------------------------------------------------------
新手入门,请多指正!
作者:
何伟
时间:
2012-11-29 13:00
-----
----
---
--
-
把它改成空格在打印就可以了
你把空格先删类变成下面这样就好思考了
*
**
**
**
**
***********
作者:
何伟
时间:
2012-11-29 14:21
何伟 发表于 2012-11-29 13:00
-----
----
---
搞错了
理解成这个图形了
*
* *
* * *
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2