【PAT】B1027 打印沙漏(20 分)

#include<cstdio>
#include<stdlib.h>
char C='*';
int qiushu(int hang){//输入行数,求出字符数
    int sum=1;
    for(int i=3;i<=hang;i+=2){
        sum+=(1+i/2*2)*2;
    }
    return sum;
}
void dayin(int hang){
    for(int i=0;i<hang/2+1;i++){
        for(int j=0;j<i;j++){
            printf(" ");
        }

        for(int k=0;k<(1+(hang/2-i)*2);k++){
            printf("%c",C);
        }
        printf("\n");
    }
    for(int i=0;i<hang/2;i++){
        for(int j=0;j<hang/2-i-1;j++){
            printf(" ");
        }
        for(int k=0;k<((i+1)*2+1);k++){
            printf("%c",C);
        }
        printf("\n");
    }
}
int main(){
    int N;
    int hang=1;
    scanf("%d %c",&N,&C);//输入总数和字符
    while(!(qiushu(hang)<=N&&qiushu(hang+2)>N)){
        hang+=2;
    }//i是要打印的行号
    dayin(hang);
    printf("%d",N-qiushu(hang));
    return 0;
}
全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
秋招吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务