PTA刷题——打印沙漏

前言

自学c语言两周,记录一下PTA的刷题,原题描述为

PTA刷题——打印沙漏_第1张图片

一、逻辑分析

 本题要求打印的沙漏每层都为奇数,故首先需计算出沙漏的最高层的符号数

1.定义变量x表示最高层符号数;

2.每层符号数逐级+2;

3.计算当前层数剩余符号数;

4.判断剩余符号数是否足够打印下一层;

5.循环上述2~4步,最终计算出最高层符号数(注:此时跳出循环x多进行了一次+2的操作);

int x=1;
int sum=0, dif=0;
int N;
char c;
scanf("%d %c", &N, &c);
do
{
    sum += x;              
    dif = N-(sum*2-1);     //当前剩余的符号数
    x += 2;
}while(dif>2*x);
x -=

你可能感兴趣的:(c语言)