feyoun72
46
2022-01-05 11:42:14
1
131

c언어 백준 2839번 설탕배달문제 질문


#include <stdio.h>

int main()

{

    int N = 0;

    int numberofFive = 0;

    int numberofThree = 0;

    scanf_s("%d", &N);

    int remainder = N % 10;

    int share = N / 10;

    int n = share-1;

    

    if (N > 10)

        switch (remainder) {

        case 1:

            numberofThree = 2;

            numberofFive = (2 * share) - 1;

            break;

        case 2:

            numberofThree = 4;

            numberofFive = (2 * share) - 2;

            break;

        case 3:

            numberofThree = 1;

            numberofFive = 2 * share;

            break;

        case 4:

            numberofThree = 3;

            numberofFive = (2 * share) - 1;

            break;

        case 5:

            numberofThree = 0;

            numberofFive = (2 * share) + 1;

            break;

        case 6:

            numberofThree = 2;

            numberofFive = 2 * share;

            break;

        case 7:

            if (share == 1)

            {

                numberofThree = 4;

                numberofFive = 1;

            }

            else

            {

                n -= 3;

                numberofThree = 9;

                numberofFive = share + n;

            }

            break;

             

        case 8:

            numberofThree = 1;

            numberofFive = (2 * share) + 1;

            break;

        case 9:

            numberofThree = 3;

            numberofFive = 2 * share;

            break;

        case 0:

            numberofThree = 0;

            numberofFive = (2 * (share - 1)) + 2;

            break;

        }

    else

            switch (N) {

            case 3:

                numberofThree = 1;

                numberofFive = 0;

                break;

            case 4:

                numberofThree = -1;

                numberofFive = 0;

                break;

            case 5:

                numberofThree = 0;

                numberofFive = 1;

                break;

            case 6:

                numberofThree = 2;

                numberofFive = 0;

                break;

            case 7:

                numberofThree = -1;

                numberofFive = 0;

                break;

            case 8:

                numberofThree = 1;

                numberofFive = 1;

                break;

            case 9:

                numberofThree = 3;

                numberofFive = 0;

                break;

            case 10:

                numberofThree = 0;

                numberofFive = 2;

                break;

            }

    printf("%d\n", numberofThree + numberofFive);

   //printf("3의개수는%d,5의개수는%d", numberofThree, numberofFive);

    return 0;

}


3부터 30까지 돌려봤는데 맞게나오는데 백준은 틀렸습니다가 뜹니다..

맞는거같은데 왜그런지모르겠어요 ㅠㅠ 

0
  • 답변 1

  • feyoun72
    46
    2022-01-05 12:08:13

    case7에 오류가있었네요 해결됬습니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.