.net 面试题之 输出 空 三角型

题目要求:C#控制台程序

输出一下图案的代码  n = 10

详细 分析 :

    第一次  9 个空格 + 一个 *                  计数器i =0  规律 :(n-i -1)空格  + * + (2* i-1)空格 +  *                

      第二次  8 空格 + * + 一个空格  +一个*    

    第三次  7 空格 + * + 三个空格  + 一个*

    第四次  6  空格 + * + 5 个空格 + 一个*

      第五次  5  空格 + * + 7 个空格 + 一个*

      第六次  4  空格 + * + 9 个空格 + 一个*

    第七次  3  空格 + * + 11 个空格 +一个*

    第八次  2  空格 + * + 13 个空格 +一个*

    第九次  1  空格 + * + 15 个空格 +一个*

     第十次   全是*   进行特殊处理 

通过分析我们不难发现 不同次的 空格 个循环次数的关系

本想题目要求是C# 我用C 写的 我的VS 太慢了

C 的 代码
    int n = 10;
    for(int i=0;i<n-1;i++)    //循环 n-1 不是 n次  因为第 n 次 全是 * 
    {
        //输入左边空格
        for(int j=0;j<n-i-1;j++)
        {
            printf(" ");
        }
        printf("*");

        //输出中间的空格
        for(int k=0;k<2*i-1;k++)
        {
            printf(" "); 
        }
        if(i>0)  //判断 第一次不输出 *   
        {
            printf("*");
        }
    
        printf("\n");
    
        
        
    }
    //最底下的* 和 空格全部打印出来
    for(int d =0;d<n;d++)
    {
        printf("* ");
    }
    printf("\n");

 

 

 

 

posted @ 2013-03-21 18:31  hzy168  阅读(258)  评论(0编辑  收藏  举报