日期:2014-05-20  浏览次数:20650 次

大侠求救
用Java实现以下的程序
能否告诉下算法的思路呀


输出可大可小的正方形图案:
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

------解决方案--------------------
只输出正方形的话,还是比较简单,像你那样填数字进去就要你自己去考虑了。

题:输出长度为n的正方形,以“*”作为行符!
思路:输出n个长度后换一行,换n次就行了
代码:

for(int i=1,z=1;i<=6;i++,z++)
{
for(int k=0;k<6;k++)
{
System.out.print("*"+" ");
}
System.out.println("");
}







------解决方案--------------------
public static void main(String[] args) {

Integer squareSize=10;//任意大小的正方形

String upofdown="1";//横排第一行和最后一行的数字

String first="";//横排第一列数字

String center=" 2";//横排中间列的数字

String end="";//横排最后一列的数字

for (int i = 0; i < squareSize; i++) {//循环横排的数字

upofdown=upofdown+" 1";

if(i==0)first="1";

else if(i==squareSize-1) end=" 1"; 

else center=center+" 2";

}
for (int i = 0; i < squareSize; i++) {//循环竖排的数字

if(i==0 || i==squareSize-1) 

System.out.println(upofdown);
else
System.out.println(first+center+end);

}
}