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(); } } }