llllmz

导航

经典算法-梯形输出

 

这题还是挺就经典的,我的解决思路如下:

高度为H,则有H行需要打印,每行打印的内容大同小异,所以只需要H次循环就好了。大体框架就解决了,然后考虑细节。

第一行有H个星星

第二行有H+2个星星

第三行有H+4个星星

可知 第X行有H+(X-1)*2个星星

第H行有H+(H-1)*2个星星,也就是3H-2个星星。

然后输出不仅只有星星其实还有空格,那么就清晰了。

第X次循环,先打印3H-2-(H+2X-2)=2H-2X个空格,在打印H+(X-1)*2个星星就完事了。 

#include <stdio.h>
int main ( ) {
    int h = 0 ;
    scanf ( "%d",& h) ;
    for ( int i = 1 ; i <= h ; i++ ) {
        for( int j = 2*h - 2*i ; j > 0 ; j -- ) {
            printf(" ") ;
        }
        for( int j = h + 2 *  i- 2 ; j > 0 ; j -- ) {
            printf("*") ;
        }
        printf("\n") ;
    }
    return 0 ;
}

结果如下:

                              

posted on 2024-01-02 21:08  神奇的萝卜丝  阅读(56)  评论(0)    收藏  举报