打印出如下图案   
*   
***  
******   
********   
******   
***   
*   
对于1、3、6、8个星号,实在没找出规律。。求解答!

解决方案 »

  1.   

    http://zhidao.baidu.com/question/48693806
      

  2.   

    一朋友问我的,算法问题嘛,总不能一个println语句输出吧
      

  3.   


    public class Test{
    public static void main(String[] args){
    Print(7);
    }

    public static void Print(int height){
    //找出中间位置
    //中间位置之前,正常打印
    //中间位置之后,整个高度减去中间位置*2=该行打印*数,之后再减1
    int value = height/2;
    for (int i = 0; i < height; i++) {
    if(i<=value){
    for(int j = 0;j<2*i+1;j++){
    System.out.print("*");
    }
    System.out.println();
    }
    else {
    for(int j = 0;j<(height-i)*2-1;j++){
    System.out.print("*");
    }
    System.out.println();
    }
    }
    }
    }
      

  4.   

    可以让用户设置每行输入的*的个数
    输入java Test 1 3 6 8即可
    public class Test{
    public static void main(String[] args){
    int n[]=new int[args.length];
    for(int i=0;i<args.length;i++){
    try{
    n[i]=Integer.parseInt(args[i]);
    }catch(NumberFormatException e){
    System.out.println("必须输入数字");
    System.exit(-1);
    }
    print(n[i]);
    }

    for(int i=args.length-2;i>=0;i--){
    print(n[i]);
    }
    }

    public static void print(int n){
    for(int i=0;i<n;i++){
    System.out.print("*");
    }
    System.out.println();
    }
    }
      

  5.   


    import java.util.Scanner;
    public class rhomb {
    //图形的规律是(可能不准确):后面的行※号数比前面的多的数目是:2,3,2,3,2,3,...
    //上面说的是前面的一半多一行,后面的和前面的一样。
    public static void main(String[] args) {
    int len = 0;//每行打印的※号数
    int row;//总共的行数,根据图形的规律,是奇数

    Scanner input = new Scanner(System.in);
    System.out.println("请输入图形的总行数(注意为正奇数):");
    row = input.nextInt();
    if(row % 2 == 0 || row < 0) {
    System.out.println("行数为正奇数!");
    return;
    }
    //定义一个数组,用来存放前面输出的各行的长度
    int[] arr = new int[row / 2 + 1];
    //打印前面的一半多一行
    for(int i=0; i<row/2+1; i++) {
    arr[i] = len;
    for(int j=0; j<=len; j++) {
    System.out.print('*');
    }
    System.out.println();
    //根据规律,如果是第一行,后面的比前面的长2,如果是第二行,后面的比前面的长3,
    //也就是说,当i为偶数的时候,长度加2,为奇数的时候,长度加3,所以如下处理长度。
    if(i % 2 == 0) {
    len += 2;
    } else {
    len += 3;
    }
    }
    //打印后面的一半,其长度依次是arr[arr.length-2],...,arr[0]
    for(int i=arr.length-2; i>=0; i--) {
    for(int j=0; j<=arr[i]; j++) {
    System.out.print('*');
    }
    System.out.println();
    }
    }
    }
      

  6.   

    可以把height 和value 具体化 ,没其他的复杂 。这个就行