递归生成
*
**
***
****
****
***
**
*
我的代码如下,不知道有没有更简便的方法?
public static void dd(int begin,int level){
if (level>0){
b(begin);
System.out.print("\n");
dd(begin+1,level-1);
b(begin);
System.out.print("\n");
}
}
public static void b(int n){
if (n>0){
System.out.print("*");
b(n-1);
}
}
*
**
***
****
****
***
**
*
我的代码如下,不知道有没有更简便的方法?
public static void dd(int begin,int level){
if (level>0){
b(begin);
System.out.print("\n");
dd(begin+1,level-1);
b(begin);
System.out.print("\n");
}
}
public static void b(int n){
if (n>0){
System.out.print("*");
b(n-1);
}
}
{
for(int i=0;i<n;i++)
{
for(int j=0;j<=i+1;j++)
{
System.out.print("*");
}
System.out.print("\n");
}
for(int i=n;i>0;i--)
{
for(int j=0;j<i+1;j++)
{
System.out.print("*");
}
System.out.print("\n");
}
}
public class test{
public test(int len){
System.out.println(f(len,len,len));
}
public String f(int x,int y,int len){
return y<0?"":(x<=len/2-Math.abs(y-len/2-1)?"*":" ")+(x==len?"\n":"")+f(x==0?len:x-1,x==0?y-1:y,len);
}
public static void main(String args[]){
new test(7);
}
}
to6楼,我就是想问有没有用递归实现f(n),打印如下格式:*
**
***
**** (n个)
**** (n个)
***
**
*
public class PrintSign{
private static final int N = 5;
public static void main(String[] args) {
for(int i=1; i<=N; i++) {
System.out.println(PrintSign.Sign(i));
}
for(int i=N; i>0; i--) {
System.out.println(PrintSign.Sign(i));
}
}
public static String Sign(int n) {
if (n == 1)
return "*";
else
return ("*" + Sign(n-1));
}
}
public class PrintSign{
private static final int N = 5;
public static void main(String[] args) {
for(int i=1; i <=N; i++) {
System.out.println(PrintSign.Sign(i));
}
for(int i=N; i> 0; i--) {
System.out.println(PrintSign.Sign(i));
}
}
public static String Sign(int n) {
if (n == 1)
return "*";
else
return ("*" + Sign(n-1));
}
}