Practice1

/*--------流程控制练习---------*/
//  先画行 
//    找每一行内容的规律

//练习1. 打印一行  ******  m个
//    2. 打印 n行  m个******
//       打印n行m列的 矩形
// int n = 3;
// int m = 5;
// //总共 n行
// for(int j=1; j<=n;j++){
// //每次 连续 的 m个*
// for(int i = 1; i<=m;i++){
// System.out.print("*");
// }
//
// //换行
// System.out.println();
// }

//练习: n行的三角形
//*       n次  每次( 当前次数个* + 换行)
//**
//***
//****
// int n=10;
// //循环n次
// for(int i=1;i<=n;i++){
// //i个*
// for(int j=1; j<=i ; j++){
// System.out.print("+");
// }
//
// //换行
// System.out.println();
// }

//*****  n行
//****   n次    每次   n-i+1 *+换行
//***
//**
//*
// int n=10;
// //循环n次
// for(int i=1;i<=n;i++){
// //总行数-当前行数+1 个*
// for(int j=1; j<=n-i+1 ; j++){
// System.out.print("+");
// }
//
// //换行
// System.out.println();
// }


//---*  n行   n次     每次     一些个空格 +i个*+换行
//--**
//-***
//****
//---*   ***      顶 m  n行
//  ** *  ***
// *** **  ***
//**** ***  ***
// int m = 7;
// int n=5;
//
// //n次循环
// for(int i=1;i<=n;i++){
// //连续的空格  n-i个 
// for(int j=1;j<=n-i;j++){
// System.out.print(" ");
// }
//
// //连续的*  2*i-1个
// for(int j=1;j<=i+i-1+m-1;j++){
// System.out.print("*");
// }
//
// //换行
// System.out.println();
// }

//练习
//--- A                 1
//   AB A              12 1
//  ABC BA            123 21
// ABCD CBA          1234 321 
//ABCDE DCBA
// int n=5;
//
// //n次循环
// for(int i=1;i<=n;i++){
// //连续的空格  n-i个 
// for(int j=1;j<=n-i;j++){
// System.out.print(" ");
// }
//
// //连续的字母  i个  从A 递增
// //  这部分的第几个 就打印数字几   再转化为字母
// for(int j=1;j<=i;j++){
// System.out.print( (char)('A'+j-1));
// }
//
// //连续的字符  i-1个    'A'+i-1 递减
// // 从i开始   i-这部分的第几个
// for(int j=1;j<=i-1;j++){
// System.out.print( (char)('A'+i-j-1));
// }
//
// //换行
// System.out.println();
// }


//练习:  画棵圣诞树
//    *     第一部分    n1行
//   ***
//  *****
// *******
//   * **    第二部分   n2行    顶部m2个(默认奇数) 
//  *** **
// ***** **
//******* **
//   ***    第三部分  n3行   m3列(默认奇数)
//   ***
//   ***

//条件
int n1=5;
int n2=7;
int m2=5;
int n3=4;
int m3=3;

int max1 = 2*n1-1;//树冠宽度
int max2 = 2*n2-1 + m2-1;//第二部分
int max3 = m3;

int offset1 = (max2-max1)/2;
int offset2 = (max2-max3)/2;

//树冠部分
for(int i=1;i<=n1;i++){
//每行先空格  + 多出一些做偏移
for(int j=1;j<=n1-i+offset1;j++){
System.out.print(" ");
}
//再*
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
//再换行
System.out.println();
}

//中间部分
for(int i=1;i<=n2;i++){
//每行先空格
for(int j=1;j<=n2-i;j++){
System.out.print(" ");
}
//再*   比第一部分多  m2-1个
for(int j=1;j<=2*i-1+m2-1;j++){
System.out.print("*");
}
//换行
System.out.println();
}


//树干部分
for(int i=1;i<=n3;i++){
//为了对齐  有些空格
for(int j=1;j<=offset2;j++){
System.out.print(" ");
}

for(int j=1;j<=m3;j++){
System.out.print("*");
}
System.out.println();
}

}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值