Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 머리와 다리 개수만으로 동물원 속 동물 마릿수 계산하기

동물원에 있는 전체 머리(동물) 수와 다리 수가 주어졌을 때, 이 데이터를 바탕으로 동물원에 있는 각 동물의 마릿수를 계산하는 문제입니다. 이 글의 예제에서는 사슴과 공작 두 종류의 동물이 있다고 가정합니다.

문제 이해하기

사슴은 다리가 4개, 공작은 다리가 2개입니다. 모든 동물은 머리를 하나씩 가지고 있으므로, 주어진 머리 수와 다리 수로 연립방정식을 세워 각 동물의 수를 구할 수 있습니다.

예제 1

입력 −

heads = 60
legs = 200

출력 −

사슴의 수: 40
공작의 수: 20

풀이 과정 −

사슴의 총 마릿수를 x라고 하자.
공작의 총 마릿수를 y라고 하자.
머리는 한 마리당 하나씩 있으므로 첫 번째 방정식은: x + y = 60
사슴은 다리가 4개, 공작은 다리가 2개이므로 두 번째 방정식은: 4x + 2y = 200
연립방정식을 풀면:
4(60 - y) + 2y = 200
240 - 4y + 2y = 200
y = 20 (공작의 총 마릿수)
x = 40 (전체 머리 수 - 공작의 수)

예제 2

입력 −

heads = 80
legs = 200

출력 −

사슴의 수: 20
공작의 수: 60

풀이 과정 −

사슴의 총 마릿수를 x라고 하자.
공작의 총 마릿수를 y라고 하자.
첫 번째 방정식: x + y = 80
두 번째 방정식: 4x + 2y = 200
연립방정식을 풀면:
4(80 - y) + 2y = 200
320 - 4y + 2y = 200
y = 60 (공작의 총 마릿수)
x = 20 (전체 머리 수 - 공작의 수)

알고리즘 접근 방법

  • 동물원의 전체 머리 수와 다리 수를 입력받습니다.

  • 사슴의 마릿수를 계산하는 함수를 만듭니다.

  • 함수 내부에서 count 값을 ((다리 수) - 2 × (머리 수)) / 2로 설정합니다. 이는 공작이 다리를 2개씩 차지한다고 가정하고 남은 다리를 사슴에게 배분하는 원리입니다.

  • 계산된 count 값을 반환합니다.

  • 공작의 수는 전체 머리 수에서 사슴의 수를 뺀 값으로 구합니다.

  • 결과를 출력합니다.

C++ 코드 예제

#include <bits/stdc++.h>
using namespace std;
// 사슴의 마릿수를 계산하는 함수
int count(int heads, int legs){
    int count = 0;
    count = ((legs)-2 * (heads))/2;
    return count;
}
int main(){
    int heads = 80;
    int legs = 200;
    int deers = count(heads, legs);
    int peacocks = heads - deers;
    cout<<"Count of deers are: "<<deers<< endl;
    cout<<"Count of peacocks are: " <<peacocks<< endl;
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다 −

Count of deers are: 20
Count of peacocks are: 60

마무리

이 문제는 단순한 연립방정식을 프로그래밍으로 해결하는 대표적인 예시입니다. 핵심 공식인 (전체 다리 수 − 2 × 전체 머리 수) ÷ 2를 기억하면 네 발 달린 동물의 수를 즉시 구할 수 있습니다. 이 방법은 닭과 소, 토끼와 오리 등 다양한 두 종류의 동물 문제에도 그대로 응용할 수 있습니다.