题目要求输出如下形式:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
~~~~~~~~~~~
我用JAVA编写的代码如下:
public class YangHui{
public static void main(String args[]){
int i=1,j=1,n=8;
int a[][]=new int[20][20];
for(i=1;i<=n;i++)
{
a[i][n-i+1]=1;//问题:若我只运行赋1这段程序,为什么除1的其他地方会输出0
a[i][n+i-1]=1;
}
for(i=3;i<=n;i++)
for(;j>n-i+1&&j<n+i-1;)
a[i][j]=a[i-1][j-1]+a[i-1][j+1];
for(i=1;i<=n;i++)
{ for(j=1;j<=2*n-1;j++)
if(a[i][j]==0)
System.out.print(' ');//问题:若此处我不用这个if语句,则以下输出结果
// 除1之外全为0,为什么(和上面的问题性质差不多)??
else
System.out.print(a[i][j]);
System.out.println();
}
}
}
我的输出结果是:
1
1 1
1 1
1 1
1 1
中间没有数字
请高手指教错在什么地方了?
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
~~~~~~~~~~~
我用JAVA编写的代码如下:
public class YangHui{
public static void main(String args[]){
int i=1,j=1,n=8;
int a[][]=new int[20][20];
for(i=1;i<=n;i++)
{
a[i][n-i+1]=1;//问题:若我只运行赋1这段程序,为什么除1的其他地方会输出0
a[i][n+i-1]=1;
}
for(i=3;i<=n;i++)
for(;j>n-i+1&&j<n+i-1;)
a[i][j]=a[i-1][j-1]+a[i-1][j+1];
for(i=1;i<=n;i++)
{ for(j=1;j<=2*n-1;j++)
if(a[i][j]==0)
System.out.print(' ');//问题:若此处我不用这个if语句,则以下输出结果
// 除1之外全为0,为什么(和上面的问题性质差不多)??
else
System.out.print(a[i][j]);
System.out.println();
}
}
}
我的输出结果是:
1
1 1
1 1
1 1
1 1
中间没有数字
请高手指教错在什么地方了?
public static void main(String [] args)
{
Print myPrint=new Print();
myPrint.printYH();
}
void PrintA()
{
System.out.println("aa");
}
void printYH()
{
int a[][]=new int[8][8];
int i=0,j=0;
a[0][0]=1;
for (i=1;i<=6;i++ )
{
for (j=1;j<=6;j++ )
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
System.out.print(" "+a[i][j]);
}
System.out.println();
}
}
}
试试上面的
public class Yanghuisanjiao{
public static void main(String args[]){
int a[][]=new int[30][30];
int i=1,j=1,n=8;
for(i=1;i<=n;i++){
a[i][n-i+1]=1;
a[i][n+i-1]=1;
}
for(i=3;i<=n;i++){
for(j=n-i+1+2;j<n+i-1;j=j+2){
a[i][j]=a[i-1][j-1]+a[i-1][j+1];
}
}
System.out.println(a[0][0]);
for(i=1;i<=n;i++){
for(j=1;j<=n*2-1;j++){
if(a[i][j]==0)
System.out.print(" ");
else if(a[i][j]<10)
System.out.print(" "+a[i][j]);
else System.out.print(a[i][j]);
}
System.out.println();
}
}
}
我找到错的地方了,错在:for(;j>n-i+1&&j<n+i-1;)
a[i][j]=a[i-1][j-1]+a[i-1][j+1];