pat 1027 C 언어

8681 단어 patc 언어
모래시계 1027 인쇄(20분)
이 문제는 주어진 기호를 모래시계 모양으로 인쇄하는 프로그램을 써 달라고 한다.예를 들어 17개의'*'를 정하면 다음과 같은 형식으로 aaaa – aaa - a - aaaaaaa를 인쇄해야 한다. 이른바'모래시계 모양'은 줄마다 홀수 기호를 출력하는 것을 말한다.각 줄 기호의 중심 정렬;두 줄에 인접한 기호의 수차 2;기호 수가 먼저 큰 순서에서 작은 순서로 1로 점차 줄어든 다음에 작은 순서에서 큰 순서로 점차 증가한다.수미 부호의 수가 같다.임의의 N개의 기호를 정하면 반드시 모래시계를 구성할 수 있는 것은 아니다.인쇄된 모래시계는 가능한 한 많은 기호를 사용할 수 있도록 요구한다.입력 형식:
입력은 한 줄에 정수 N(≤1000) 1개와 기호를 주고 중간에 빈칸으로 구분한다.출력 형식:
먼저 주어진 기호로 구성된 가장 큰 모래시계 모양을 출력하고, 마지막으로 한 줄에 사용하지 않은 기호 수를 출력합니다.여기서 내가 사용하는 것은 상하 2층 인쇄, 즉 모래시계를 2반으로 나누어 출력하는 것이다.
#include

int main()
{
    int n,max=1,number=1;
    char sign;
    scanf(" %d %c",&n,&sign);
    for(int i=3;i<=n;i+=2)//          
    {
        if(max+i*2>n)
        {
            break;
        }
        else max+=i*2;
        number+=2;//  
    }
    for(int i=0;i<(number/2)+1;i++)//      (      )
    {
        for(int j=0;j<i;j++)//       ,          ,        
        {
            printf(" ");
        }
        for(int k=i;k<number-i;k++)//    sign    ,        
        {
            printf("%c",sign);
        }
        printf("
"
); } for(int i=(number/2)-1;i>=0;i--)// { for(int j=i;j>0;j--) { printf(" "); } for(int j=number-i;j>i;j--) { printf("%c",sign); } printf("
"
); } printf("%d",n-max);// }

좋은 웹페이지 즐겨찾기