这应该很简单的,小三角形是个循环,大三角形是个循环,大三角形的每一层是个循环 所以三个循环就可以了 public class csdn { public static void main(String[] args) throws Throwable { int n = 5, m = 5; int center = n * m; StringBuilder buf = new StringBuilder(); //用来保存字符* for (int i=0; i<n; i++) { //大三角形循环 for (int j=0; j<m; j++) { //小三角形循环 buf.delete(0, buf.length()); //清空字符* for (int k=0; k<2*j+1; k++) { //计算并保存小三角形每层的字符* buf.append("*"); } for (int k=0, p=center-i*m+j; k<=i; k++, p=2*m) { //大三角形的每层循环 String format = "%" + p + "s"; //计算开始位置并设置格式化输出 System.out.printf(format, buf.toString()); //打印 } System.out.println(); //小三角形每层换行 } } } }
package com.clc.test;public class Test { /** * @param args */ public static void main(String[] args) { int a = 20; int b = 30; a = a ^ b; b = b ^ a; a = a ^ b; System.out.println(a + "--" + b); String str = "asd^% asd%asd& ;"; str = str.replaceAll("[\\p{Punct}\\p{Space}]+", ""); System.out.println(str); int num=6; //大三角形的层数 int num1=6; //每个小三角形的层数 for (int i = 0; i < num; i++) { for (int s = 0; s < num1; s++) { for (int p = 0; p < (num*(2*num1) - s * 2-1 ) / 2 - num1 * i; p++) { System.out.print(" "); } for (int x = 0; x < i + 1; x++) { for (int p = 0; p < s * 2 + 1; p++) { System.out.print("*"); } for (int p = 0; p < 2*num1-1 - 2 * s; p++) { System.out.print(" "); } } System.out.println(); } } } }
所以三个循环就可以了
public class csdn {
public static void main(String[] args) throws Throwable {
int n = 5, m = 5;
int center = n * m;
StringBuilder buf = new StringBuilder(); //用来保存字符*
for (int i=0; i<n; i++) { //大三角形循环
for (int j=0; j<m; j++) { //小三角形循环
buf.delete(0, buf.length()); //清空字符*
for (int k=0; k<2*j+1; k++) { //计算并保存小三角形每层的字符*
buf.append("*");
}
for (int k=0, p=center-i*m+j; k<=i; k++, p=2*m) { //大三角形的每层循环
String format = "%" + p + "s"; //计算开始位置并设置格式化输出
System.out.printf(format, buf.toString()); //打印
}
System.out.println(); //小三角形每层换行
}
}
}
}
* @param args
*/
public static void main(String[] args) {
int a = 20;
int b = 30;
a = a ^ b;
b = b ^ a;
a = a ^ b;
System.out.println(a + "--" + b);
String str = "asd^% asd%asd& ;";
str = str.replaceAll("[\\p{Punct}\\p{Space}]+", "");
System.out.println(str);
int num=6; //大三角形的层数
int num1=6; //每个小三角形的层数
for (int i = 0; i < num; i++) {
for (int s = 0; s < num1; s++) {
for (int p = 0; p < (num*(2*num1) - s * 2-1 ) / 2 - num1 * i; p++) {
System.out.print(" ");
}
for (int x = 0; x < i + 1; x++) {
for (int p = 0; p < s * 2 + 1; p++) {
System.out.print("*");
}
for (int p = 0; p < 2*num1-1 - 2 * s; p++) {
System.out.print(" ");
}
}
System.out.println();
} }
}
}
System.out.println(" * ")
System.out.println(" *** ")
{
public static void main(String[] args)
{
int i=0,j=1,k=0,m=0,n=0,temp=0;
for(i=0;i<5;i++)//
{
for(j=1;j<6;j++)
{
for(k=0;k<24-5*i-j+1;k++)
{
System.out.print(" ");
}
for(m=0;m<2*j-1;m++)
{
System.out.print('*');
} //循环i次,也就是再画i个小三角形
for(n=0;n<i;n++)
{
temp=k+m;
for(k=temp;k<temp+11-2*j;k++)
{
System.out.print(' ');
}
for(m=0;m<2*j-1;m++)
{
System.out.print('*');
}
}
System.out.println();
}
// System.out.println();
}
}
}
看过十楼的代码,我还是处于面向过程中啊。惭愧啊