-
CS50 Week1: Problem Set, CashProgramming/CS50 2023. 7. 2. 01:18
하버드 CS50 1주차 Problem Set 과제 Cash 의 풀이 과정을 다룹니다.
C언어로 함수를 작성하여 잔돈의 동전 수를 계산하는 문제입니다.Intro
문제 링크에서 자세한 내용을 확인할 수 있습니다.
주어진 Cent 금액을 바탕으로 필요한 동전의 수를 계산하는 문제
$ ./cash Change owed: 41 4
Details
get_cents()
함수로 음수가 아닌 정수를 input 받을것- 주어진 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; }