用python输出沙漏_2018-2019寒假作业 其一 打印沙漏

作者: 陈越

单位: 浙江大学

时间限制: 400 ms

内存限制: 64 MB

代码长度限制: 16 KB

一 我写的代码以及注释

#include

#include

int main (void)

{

int a,b=1,c,d,e,f,h;        //定义变量a与g为输入的值,b为沙漏的一半三角形的高,c表示沙漏总字符数或沙漏的每一层的字符数,h表示未使用的字符数,d和e和f为for循环的中间变量

char g;

scanf("%d %c",&a,&g);

for(;c<=a;b++){            //利用for循环从小到大比较a与c的大小并确定b的值

c=pow(b,2)*2-1;}

b=b-2,d=b;

for(f=0,e=0;d>0;d--)     //使用for循环打印沙漏上部分和中部分

{

c=d*2-1;

for(;e>0;e--)printf(" ");

for(;c>0;c--)printf("%c",g);

printf("\n");

f++,e=f;

}

for(f=b-2,e=f,d=2;d<=b;d++)  //使用for循环打印沙漏下部分

{

c=d*2-1;

for(;e>0;e--)printf(" ");

for(;c>0;c--)printf("%c",g);

printf("\n");

f--,e=f;

}

c=pow(b,2)*2-1; //计算并输出未使用的符号数

h=a-c;

printf("%d",h);

return 0;

}

二 我的思路啊

首先找出沙漏的规律,我发现沙漏分为上中下三个部分,上中可成一个倒三角。

然后倒三角每一层的字符均为层数的两倍减一,可以用循环来打印空格;但是字符前还有空格,所以还要加一个循环打印空格。

此后我发现沙漏的总字符为倒三角层数的平方的两倍减一,由此可确定倒三角的层数

又后开始打印沙漏

最后由输入数减去沙漏总字符数得到未使用的字符数

三 我的错误啊

在求未使用的字符数时,没有分步计算,结果错误

截图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值