1
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
1 2 4 8 16 8 4 2 1
打印一个三角形的方法在上一篇博客已经描述了, 这里不在重复。
感兴趣的可以去看上一篇:
首先老样子,还是找一下规律:
首先三角形画个中线,你会发现两边的数都时2的列数的次方, 2 ^ j。(注意, 次方时需要引入Math包的,不能是以^这种写法)当然,前提是以二维数组arr[ i ][ j ],并且数组的下标都是从0开始。
那中线右边呢,由于是和左边对称的,arr[ i ][ j ] = arr[ i ][ 2*i - j ]。
所以我们就可以直接写出代码。
源代码:
import java.lang.Math;
import java.util.Scanner;
public class Triangle{
public static void main(String [] args){
int i = 0 ;
int j = 0 ;
int k = 0 ;
Scanner input = new Scanner(System.in);
System.out.println("please input:");
int InputNumber = input.nextInt();
int[][] arr = new int[InputNumber][];
for (i = 0 ;i < InputNumber; i++){
arr[i] = new int[2*i+1];
for(k = 0 ; k < InputNumber - i ; k++){
System.out.print(" ");
}
for (j = 0 ; j < 2*i+1; j++){
if(j <= i){
arr[i][j] =(int) Math.pow(2.0,j);//中线左边 }
else{
arr[i][j] = arr[i][2*i - j];//中线右边
}
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}