打印菱形
题目要求:
【题型一】打印实心零星(无间隙)
样例输出:
![70][]
像这样重复输出一种符号或者具有某种可描述的关系的形式,就应该首先想到循环,然后对规律进行分析总结,最后将具有相同特性的写在一起,即可。。。
public class lj01 {
public static void main(String[] args) {
//上半部分
for(int i=1;i<=3;i++) {//用于控制行数
for(int j =1;j<=5/2+1-i;j++) {//m表示空格数,n表示*号数
System.out.print(" ");
}
for(int j=1;j<2*i;j++) {
System.out.print("*");
}
System.out.println("");
}
//下半部分
for(int i=3;i>0;i--) {//用于控制行数
if(i!=3) {
for(int j =1;j<=5/2+1-i;j++) {//m表示空格数,n表示*号数
System.out.print(" ");
}
for(int j=1;j<2*i;j++) {
System.out.print("*");
}
System.out.println("");
}else {continue;}
}
}
}
【题型二】、打印实心菱形(有间隙)
样例输出:
![70 1][]
public class lj01 {
public static void main(String[] args) {
//上半部分
for(int i=1;i<=3;i++) {//用于控制行数
for(int j =1;j<=3-i;j++) {//m表示空格数,n表示*号数
System.out.print(" ");
}
for(int j=1;j<=i;j++) {
System.out.print("* ");
}
System.out.println();
}
//下半部分
for(int i=3;i>0;i--) {//用于控制行数
if(i!=3) {
for(int j =1;j<=3-i;j++) {//m表示空格数,n表示*号数
System.out.print(" ");
}
for(int j=1;j<=i;j++) {
System.out.print("* ");
}
System.out.println();
}else {continue;}
}
}
}
第一个和第二个实质是相同的,都分为上半部分和下半部分来打印。由于中间行最多,且只有一行,故在下半部分打印时不能重复打印,可以采取控制行数,但我为了上下部分保持一致,在下半部分采取了continue(跳过) 。
【题型三】、打印空心菱形(此题为翻译)
样例输出:
![70 2][]
public class lj01 {
public static void main(String[] args) {
int i=0,j=0;
System.out.println("请输入行数");
Scanner sc=new Scanner(System.in);
int M=sc.nextInt();
for(i=-M;i<=M;i++)
{
for(j=-M;j<=M;j++)
if((Math.abs(i)+Math.abs(j))==M) /*横纵坐标之和等于M的则全部打印*/
System.out.print("*");
else
System.out.print(" ");
System.out.print("\n");
}
System.out.println("");
}
}
日常鸡汤:黎明前的那一段时间最黑暗。。。
还没有评论,来说两句吧...