大侠求救
用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);
}
}