package _4_5_经典范例;
//使用for循环输出空心菱形
public class _4_5_Example_1 {
public static void main(String [] args){
paint(20);
}
public static void paint(int number){
/*if(number<2){
System.out.println("行数过小,不能打印");
return;
}*///number为1的时候只有一个星星,可以打印,但是没有意义咯
int upNumber,downNumber;//上部分和下部分的行数
if(number%2==0){
upNumber=(number+2)/2;
downNumber=number/2;
}
else{ //行数分配遵循上三角比下三角多一行的规则
upNumber=(number+1)/2;
downNumber=(number-1)/2;
}
//先打印上三角
for(int i=1;i<=upNumber;i++){
for(int j=1;j<=upNumber-i;j++)//先打印每行左边的空格
System.out.print(" ");
System.out.print("*");//每行第一个星号
if(i==1){//跳过打印第一行的第二颗星
System.out.println();
continue;
}
for(int j=1;j<=(2*i-3);j++){//每行中间的空格
System.out.print(" ");
}
System.out.print("*");//每行最后一个星星
System.out.println();
}
//再打印下三角
for(int i=downNumber;i>=1;i--){
for(int j=1;j<=upNumber-i;j++)//先打印每行左边的空格
System.out.print(" ");
System.out.print("*");//每行第一个星号
if(i==1){//跳过打印第一行的第二颗星
System.out.println();
continue;
}
for(int j=1;j<=(2*i-3);j++){
System.out.print(" ");
}
System.out.print("*");
System.out.println();
}
}//end paint();
}//end class _4_5_Example_1
package _4_5_经典范例;
import java.util.Scanner;
//输出杨辉三角,两端为1,中间元素为其上元素和左上元素相加之和
public class _4_5_Example_2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner scanner=new Scanner(System.in);
System.out.print("请输入想得到的杨辉三角的行数:");
int number=scanner.nextInt();
scanner.close();
int [][] array=new int[number][];
for(int i=0;i<array.length;i++){
array[i]=new int[i+1]; //建立不同列的数组
for(int j=0;j<=i;j++){
if(j==0||j==i)
array[i][j]=1;//两端元素为1;
else
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
//输出杨辉三角
for(int i=0;i<array.length;i++){
/*for(int j=0;j<array.length-i;j++)
System.out.print(" ");*/
for(int j=0;j<array[i].length;j++)
System.out.print(array[i][j]+"\t");
System.out.println();
}
}
}