打印
1 3 4 5 8 12 7 12 20 32 9 16 28 48 80 ..... 输入任意一个奇数,输出那一行的数据
第一种方法找到规律进行归纳等式:
1 public static void main(String[] args) {2 System.out.println("请输入任意一个奇数: ");3 Scanner input = new Scanner(System.in);4 int i = input.nextInt();//任意一个奇数5 input.close();6 int j = (i + 1) / 2;//行数7 for(int p = 1; p <= j; p++) { //p为行数的项数8 System.out.print( (int)( Math.pow(2,p) * j - p * Math.pow(2,p-1) ) + " ");//观察得出数值与项数,行数的关系9 }
第二中方法递归方法:
1 int[][] num = new int[j][j];//二维数组储存数据 2 for(int p = 0; p < j; p++) { //p代表数组纵轴与上面的p不同 3 for(int m = 0; m < j; m++) { //m代表数组横轴 4 if(m == 0) { //横轴为首项时,数值为2*行数-1 行数=p+1 5 num[p][m] = 2*p + 1; 6 } 7 else if( p > 0) { //当纵轴不为0时,即不是第一行时 8 num[p][m] = num[p][m-1] + num[p-1][m-1]; 9 }10 }11 }12 for(int m = 0; m < j; m++) {13 System.out.print(num[j-1][m]+" ");14 }