4. 1차원 배열 3052번 나머지 c언어

문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

입력

첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.

출력

첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.

코드

#include <stdio.h>
int main(void)
{
    int N = 0;

    int a[10] = { 0 }; 
    int rst = 0;

    for (int i = 0; i < 10; i++) //배열에 나머지값넣기
    {
        scanf_s("%d", &N);
        a[i] = N % 42;
    }

    for (int j = 0; j < 10; j++)
    {
        int count = 0;
        for (int k = j + 1 ; k < 10; k++)
        {
            if (a[j] == a[k]) //배열비교해서 중복잇으면 count값쌓기
            {
                count++;
            }

        }
        if (count == 0) //count안늘어낫으면 rst값쌓기
        {
            rst++;
        }

    }
    printf("%d", rst);

    return 0;
}

for문 1 배열에 나머지 값 넣기
for문 2 각 배열마다 비교해서 중복이 있으면 count스택을 쌓음.
중복이 없으면 rst값을 쌓음.

+ Recent posts