首页 > 其他 > 详细

1027. 打印沙漏(20)

时间:2015-08-26 21:56:42      阅读:224      评论:0      收藏:0      [点我收藏+]
//
//  main.c
//  calm
//
//  Created by Deak on 15/8/26.
//  Copyright (c) 2015年 Shen.Jun. All rights reserved.
//1+(i+3)*(i-1)/2

#include <stdio.h>
#include <math.h>

int main(void) {
    int n = 1,left;
    char c;
    scanf("%d %c",&n,&c);
    int i = 1,max = 0;
    for (;1+(i+3)*(i-1)/2 <= n; i = i+2);
    max = i-2;
    i = i-2;
    left=n-1-(max+3)*(max-1)/2;
    for (; i >= -max; i = i-2) {
        for (int k = 0; k < (max - abs(i))/2; k++) printf(" ");
        for (int k = 0; k < abs(i); k++) printf("%c",c);
//不要再输出空格了,会报“格式错误”
        printf("\n");
        if (i == 1) i = -1;
    }
    printf("%d\n",left);
    return 0;
}
 

 

1027. 打印沙漏(20)

原文:http://www.cnblogs.com/sjdeak/p/4761535.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!