本帖最后由 qq312238436 于 2010-04-20 19:11:31 编辑

解决方案 »

  1.   

    呵呵  这个比较easy吧!先占个sf!
      

  2.   

    来接分的...
    public class Test{
      public static void main(String[] args){
        int j=7;
        for(int i=0;i<j*j+j;i++){
          int l=Math.abs(i/(j+1)-j/2);
          int n=j/2-Math.abs(i%(j+1)-j/2);
          if(i%(j+1)==j) {
      System.out.println();
      } else {
      System.out.print(n<l?" ":"*");
      }
        }
      }
    }
      

  3.   

    不要算法, 直接system.out.println()ok
      

  4.   

    /**
     * 打印一个指定高、宽的空心菱形。
     * @param height 所要绘制空心菱形的高度
     * @param width 所要绘制空心菱形的宽度
     */
    public static void diamond(int height,int width){

    for(int y=0;y<height+1;y++){    /*y轴坐标循环*/
    for(int x=0;x<width+1;x++){ /*x轴坐标循环*/

    if(y*-1*width==(x-width/2)*height||
       (y-height/2)*width==x*height||
       (y-height)*width==(x-width/2)*-1*height||
        y*width==(x-width/2)*height){ 
       /*绘制菱形边界*/
    System.out.print(areaShape);
    }
    else{ /*绘制三角形外部*/
    System.out.print(' ');
    }
    }
    System.out.println(); /*换行输出*/
    }
    }
    /**
     * 打印一个指定高、宽的实心菱形。
     * @param height 所要绘制实心菱形的高度
     * @param width 所要绘制实心菱形的宽度
     */
        public static void solidDiamond(int height,int width){
    for(int y=0;y<height+1;y++){    /*y轴坐标循环*/
    for(int x=0;x<width+1;x++){ /*x轴坐标循环*/

    if(y*-1*width<=(x-width/2)*height&&
       (y-height/2)*width<=x*height&&
       (y-height)*width<=(x-width/2)*-1*height&&
        y*width>=(x-width/2)*height){ 
       /*绘制菱形边界*/
    System.out.print(areaShape);
    }
    else{ /*绘制三角形外部*/
    System.out.print(' ');
    }
    }
    System.out.println(); /*换行输出*/
    }
    }自己写测试类吧,超级简单的!
      

  5.   

    public class Test{
      public static void main(String[] args){
    System.out.println("      *            1");
    System.out.println("     ***           3");
    System.out.println("    ******         6");
    System.out.println("  *********        9");
    System.out.println("    ******         6");
    System.out.println("     ***           3");
    System.out.println("      *            1");  }
    }  
      

  6.   

    其实这些面试题是比较常见的,你在循环外边申明一个变量N,然后在循环里设置该变量的值,每循环一次变量N+1,循环结束,等打印输出结束后变量N清零,这样不就是每行有几个星号就有几个循环了吗。也许可能有更简单的方法,还是请楼主自己多研究一下吧!很简单的!
      

  7.   

    我的思路是这样!班门弄斧一下!请大家指教!a2-a0=5;a3-a1=6;推断隔项之和可能是等差数列!故: a(i) = a(i-2)+a(i-1)-a(i-3)+1;
    对应函数:  static int a(int i){



    if (i ==1)

    value = 1;

    if (i ==2)

    value = 3;
    if (i ==3)

    value = 6;
    if (i ==4)

    value = 9;

    if (i >4)

    value = a(i-2)+a(i-1)-a(i-3)+1;

    return value;
    }
      

  8.   

    不觉得只用 System.out.println()
    太没技巧性而言了吗