ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS50 Week1: Problem Set, Cash
    Programming/CS50 2023. 7. 2. 01:18

    하버드 CS50 1주차 Problem Set 과제 Cash 의 풀이 과정을 다룹니다.
    C언어로 함수를 작성하여 잔돈의 동전 수를 계산하는 문제입니다.

    Intro

    문제 링크에서 자세한 내용을 확인할 수 있습니다.

    주어진 Cent 금액을 바탕으로 필요한 동전의 수를 계산하는 문제

    $ ./cash
    Change owed: 41
    4

    Details

    1. get_cents() 함수로 음수가 아닌 정수를 input 받을것
    2. 주어진 cent 금액을 바탕으로 필요한 동전의 수를 반환하는 calculate_quaters, calculate_dimes, calculate_nickels, calculate_pennies 함수를 작성할 것

    Code

    사실 문제 의도를 잘 모르겠다.

    큰 금액부터 동전 수를 계산하며 코인 수를 더해간다.

    왜 굳이 동전 종류 별로 함수를 따로 만들도록 한 거지, 학습적인 의의가 따로 있나?

    #include <stdio.h>
    #include "cs50.h"
    
    int get_cents(void);
    int calculate_quaters(int cents);
    int calculate_dimes(int cents);
    int calculate_nickels(int cents);
    int calculate_pennies(int cents);
    
    int main(void)
    {
        int num_coins = 0;
        int cents = get_cents();
    
        num_coins += calculate_quaters(cents);
        cents -= (calculate_quaters(cents) * 25);
    
        num_coins += calculate_dimes(cents);
        cents -= (calculate_dimes(cents) * 10);
    
        num_coins += calculate_nickels(cents);
        cents -= (calculate_nickels(cents) * 5);
    
        num_coins += calculate_pennies(cents);
    
        printf("%i", num_coins);
    }
    
    int get_cents(void)
    {
        int cents;
        do
        {
            cents = get_int("change owed: ");
        } 
        while (cents < 0);   
    }
    
    int calculate_quaters(int cents)
    {
        return cents / 25;
    }
    
    int calculate_dimes(int cents)
    {
        return cents / 10;
    }
    
    int calculate_nickels(int cents)
    {
        return cents / 5;
    }
    
    int calculate_pennies(int cents)
    {
        return cents / 1;
    }

    댓글