关于用循环来输出三角形

lazyrm 2016-05-24 11:28:52
*
***
******
********
******
***
*
这样的三角形怎么用最简单的方式来输出呢?
...全文
484 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShowTimeLei 2016-05-31
  • 打赏
  • 举报
回复
把整个图形补成一个矩形,用if else判断输出*还是输出空格
  • 打赏
  • 举报
回复
引用 7 楼 lazyrm 的回复:
[quote=引用 3 楼 qnmdcsdn 的回复:] 首先,要有一个规律
这个是1368 有点像什么呢? 1^2-0 2^2-1 3^2-3 4^2-6 都是行数的平方减去上一行的值 这个是规律吧 .但是我实在想不出来怎么写出来[/quote] 如果我没算错,你这个公式算出来应该是1、3、6、10吧
lazyrm 2016-05-25
  • 打赏
  • 举报
回复
引用 12 楼 stheno 的回复:
上下对称的图形,使用回归函数,只需要写一半的代码量
我去了解一下回归函数
lazyrm 2016-05-25
  • 打赏
  • 举报
回复
引用 8 楼 qnmdcsdn 的回复:
[quote=引用 7 楼 lazyrm 的回复:] [quote=引用 3 楼 qnmdcsdn 的回复:] 首先,要有一个规律
这个是1368 有点像什么呢? 1^2-0 2^2-1 3^2-3 4^2-6 都是行数的平方减去上一行的值 这个是规律吧 .但是我实在想不出来怎么写出来[/quote] 如果我没算错,你这个公式算出来应该是1、3、6、10吧[/quote] 对 后面想修改的 但是好像只能回复一次。所以现在出来承认错误
爱睡觉的阿狸 2016-05-25
  • 打赏
  • 举报
回复
这个数的规律是很重要的,可以说就是唯一的难点。 我就按照1、3、6、10这个规律给楼主写下代码吧,希望对楼主能有帮助。
public class TestTriangle {

	public static void main(String[] args) {
		PrintTriangle(4);
	}
	
	public static void PrintTriangle(int middleLine) {
		if(middleLine < 2){
			System.out.println("输入有误");
		} else {
			int y = 0;
			for(int i=1; i<=middleLine; i++){
				int k = i*i - y;
				y = k;
				for(int j=1; j<=k; j++){
					System.out.print("*");
				}
				System.out.println();
			}
			for(int i=1; i<=middleLine-1; i++){
				int k = (middleLine-i+1)*(middleLine-i+1) - y;
				y = k;
				for(int j=1; j<=k; j++){
					System.out.print("*");
				}
				System.out.println();
			}
		}
	}

}
stheno 2016-05-25
  • 打赏
  • 举报
回复
上下对称的图形,使用回归函数,只需要写一半的代码量
stheno 2016-05-25
  • 打赏
  • 举报
回复
public classClsTest
(){

public static final String TXT="********";
public static void main(){
selfCall(1,2);

}

public static void selfCall(int outCnt, int plus){
if (outCnt > 7) {
outTxt(8);
} else {
outTxt(outCnt);
selfCall(plus+=outCnt, plus);
outTxt(outCnt);
}

private static void outTxt(int length){
System.out.println(TXT.substring(0, length));
}
}
gamedev˚ 2016-05-25
  • 打赏
  • 举报
回复
引用
你的这几个数 的规律是没规律吗?其实重要的不在这个问题上,而是循环中如何处理这一类问题
//再贴一个菱形的吧~~
class TestForFor{
	public static void main(String[] args) {
		for(int i = 0;i < 9;i++){
			if(i<5){
				for(int k = 0;k < 4-i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j < i+1;j++){
					System.out.print("* ");
				}
			}
			else{
				for(int k = 0;k < i-4;k++){
					System.out.print(" ");
				}
				for(int j = 0;j < 9-i;j++){
					System.out.print("* ");
				}
			}
			System.out.println();
		}
	}
}
//输出结果为:
    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    *
gamedev˚ 2016-05-25
  • 打赏
  • 举报
回复
你的这几个数 的规律是没规律吗?其实重要的不在这个问题上,而是循环中如何处理这一类问题

public class TesTriangle {

public static void main(String[] args) {
String[][] s = new String[][]{{"*"},{"* * *"},{"* * * * * *"},{"* * * * * * * *"}};
for(int i = 0;i < s.length;i++){
for(int j = 0;j < s[i].length;j++){
System.out.println(s[i][j]);
System.out.println();
}
}
for(int i = s.length-2;i > -1;i--){
for(int j = 0;j < s[i].length;j++){
System.out.println(s[i][j]);
System.out.println();
}
}
}

}


lazyrm 2016-05-24
  • 打赏
  • 举报
回复
引用 3 楼 qnmdcsdn 的回复:
首先,要有一个规律
这个是1368 有点像什么呢? 1^2-0 2^2-1 3^2-3 4^2-6 都是行数的平方减去上一行的值 这个是规律吧 .但是我实在想不出来怎么写出来
lazyrm 2016-05-24
  • 打赏
  • 举报
回复
引用 2 楼 jingconner 的回复:
这个就是最简单的,
public class Test1 {

	public static void main(String[] args) {
		System.out.println("*\n*** \n****** \n******** \n****** \n*** \n*");
	}
}
哈哈。
这个能实现是能实现 但是没有思考吧
lazyrm 2016-05-24
  • 打赏
  • 举报
回复
引用 1 楼 rencht 的回复:
1,3,6,8(9?)不晓得每行长度是什么规律
这个是1368 有点像什么呢? 1^2-0 2^2-1 3^2-3 4^2-6 都是行数的平方减去上一行的值
  • 打赏
  • 举报
回复
首先,要有一个规律
范海辛o 2016-05-24
  • 打赏
  • 举报
回复
这个就是最简单的,
public class Test1 {

	public static void main(String[] args) {
		System.out.println("*\n*** \n****** \n******** \n****** \n*** \n*");
	}
}
哈哈。
rencht 2016-05-24
  • 打赏
  • 举报
回复
1,3,6,8(9?)不晓得每行长度是什么规律

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧