打印沙漏

#include <stdio.h>
using namespace std;
int main(int argc, const char * argv[]){
    int n;
    char c;
    scanf("%d %c",&n,&c);
    int increase=6;
    int sum=1,layer=1;
    while(sum+increase<=n){
        sum+=increase;
        increase+=4;
        layer+=1;
    }
    increase-=4;
    for(int i=0;i<layer;i++){
        for(int j=0;j<i;j++){
            printf(" ");
        }
        for(int j=0;j<(increase-i*4)/2;j++){
            printf("%c",c);
        }
        
        printf("\n");
    }
    for(int i=layer-2;i>=0;i--){
        for(int j=0;j<i;j++){
            printf(" ");
        }
        for(int j=0;j<(increase-i*4)/2;j++){
            printf("%c",c);
        }
        
        printf("\n");
    }
    printf("%d",n-sum);
    return 0;
}

 

注意:每一行后没是没有空格的

posted @ 2022-07-02 15:06  Yohoc  阅读(15)  评论(0)    收藏  举报