问题:
打印
1
3 4
5 8 12
7 12 20 32
9 16 28 48 80
.....
提示:
除第一行和列外,从第二行第二列开始每一个元素者是它左边和左上方元素之和故可考虑定义一个二维数组,需要的赋值,其它赋零,输出时遇零输出回车。
代码实现:
package xiaowu;
public class awadad {
public static void main(String[] args) {
int num=21;
if(num==0)
return;
int[][] s=getArray(num);
printArray(s);
}
public static void printArray(int[][] s) {
for(int i=0;i<s.length;i++){
for(int j=0;j<s[0].length;j++){
if(s[i][j]!=0)
System.out.print(s[i][j]+"\t");
else{
System.out.println();
break;//为了对该元素后的也为零的元素不判断,使用break跳出内层循环。
}
}
}
}
public static int[][] getArray(int num) {
int arraylength=(num+1)/2;
int[][] myarray=new int[arraylength][arraylength];
for(int i=0;i<arraylength;i++){
myarray[i][0]=i*2+1;
for(int j=1;j<=i;j++){
myarray[i][j]=myarray[i-1][j-1]+myarray[i][j-1];
}
}
return myarray;
}
}
(代码是转载他人修改过的,如果有侵权,请联系本人。)