C언어 달팽이 우물 탈출하기~

hwakyoung·2022년 8월 22일
0
post-thumbnail

오늘은 c언어에서 달팽이 우물 탈출하기 대작전을 펼쳤다.
역시나 대작전이라 그런지 고민이 된다.... 하지만 나는 할 수 있다.!@
그럼 시작해 보도록 한다.


오늘의 문제

  • 우물의 높이는 100m
  • 달팽이가 한번 이동하는 거리는 5m
  • 50m 전까지 5m를 이동한 후 1m를 밑으로 미끄러진다.
  • 50m 부터는 5m를 이동후 2m씩 아래로 미끄러진다
  • 총 시도한 횟수와 거리를 출력한다.

코드 알아보기

#include <stdio.h>
void main( void )

{

    int height = 100;
    int snail   = 0;
    int count  = 0;
    
    while(1)
    {
           snail += 5;
           snail -= (snail>=50) ? 2 : 1;
           count++;
           
            printf("[%2d]달팽이가 이동한 높이 %2d \n", count, snail );

            if( snail >= height )

            {

                  printf( "%d회 만에 우물을 탈출하였습니다.\n", count );
                  break;

             }

     }

코드 설명 가보자고~!

  • snail은 달팽이가 이동한 거리를 나타낸다.
    height는 우물의 높이를 나타낸다.
    count 는 달팽이가 도전한 횟수를 나타낸다.

  • while문은 우물의 높이인 height를 초과하면 종료된다.
    이때 횟수를 뜻하는 count를 반복할 때 마다 1씩 증가시킨다.

결과창

[ 1]달팽이가 이동한 높이  4
[ 2]달팽이가 이동한 높이  8
[ 3]달팽이가 이동한 높이 12
[ 4]달팽이가 이동한 높이 16
[ 5]달팽이가 이동한 높이 20
[ 6]달팽이가 이동한 높이 24
[ 7]달팽이가 이동한 높이 28
[ 8]달팽이가 이동한 높이 32
[ 9]달팽이가 이동한 높이 36
[10]달팽이가 이동한 높이 40
[11]달팽이가 이동한 높이 44
[12]달팽이가 이동한 높이 48
[13]달팽이가 이동한 높이 51
[14]달팽이가 이동한 높이 54
[15]달팽이가 이동한 높이 57
[16]달팽이가 이동한 높이 60
[17]달팽이가 이동한 높이 63
[18]달팽이가 이동한 높이 66
[19]달팽이가 이동한 높이 69
[20]달팽이가 이동한 높이 72
[21]달팽이가 이동한 높이 75
[22]달팽이가 이동한 높이 78
[23]달팽이가 이동한 높이 81
[24]달팽이가 이동한 높이 84
[25]달팽이가 이동한 높이 87
[26]달팽이가 이동한 높이 90
[27]달팽이가 이동한 높이 93
[28]달팽이가 이동한 높이 96
[29]달팽이가 이동한 높이 99
[30]달팽이가 이동한 높이 102
30회 만에 우물을 탈출하였습니다.

코드를 실행하게 되면 이런 결과를 볼 수 있다.

profile
fire-irror

0개의 댓글