프로그래머의 삶 Programmer's Life/C & C++

거스름돈 계산 문제(우리나라 기준)

Oliver's World 2008. 11. 5. 11:22
728x90
/*
Ver.1
함수 없이 구현한 거스름돈의 양을 구하는 문제 */

/*

#include <stdio.h>

main()
{
int a,b,c,d,e,f;
printf("거스름돈의 양을 구하는 문제입니다.\n 거스름돈의 양을 입력하십시오.\n");
scanf("%d",&a);
b=a/1000;
c=(a-(b*1000))/500;
d=(a-((b*1000)+(c*500)))/100;
e=(a-((b*1000)+(c*500)+(d*100)))/50;
f=(a-((b*1000)+(c*500)+(d*100)+(e*50)))/10;
printf("거스름돈은 1000원짜리 지폐 %d 장\n500원 짜리 동전 %d 개\n100원짜리 동전 %d 개\n 50원짜리 동전 %d 개\n 10원짜리 동전 %d개 입니다. \n)",b,c,d,e,f);
}

*/







/* Ver.2
단순히 위의 프로그램을 함수로 구현한 거스름돈의 양을 구하는 문제 */

/*

#include <stdio.h>

int chun(a)
{
int b;
b=a/1000;
return b;
}

int obac(c)
{
c/=500;
return c;
}

int bac(d)
{
d/=100;
return d;
}

int osib(e)
{
e/=50;
return e;
}

int sib(f)
{
f/=10;
return f;
}


main()
{
int a,b,c,d,e,f;
printf("거스름돈의 양을 구하는 문제입니다.\n 거스름돈의 양을 입력하십시오.\n");
scanf("%d",&a);
b=chun(a);
c=obac(a-(b*1000));
d=bac(a-(b*1000)-(c*500));
e=osib(a-(b*1000)-(c*500)-(d*100));
f=sib(a-(b*1000)-(c*500)-(d*100)-(e*50));
printf("거스름돈은 1000원짜리 지폐 %d 장\n500원 짜리 동전 %d 개\n100원짜리 동전 %d 개\n 50원짜리 동전 %d 개\n 10원짜리 동전 %d개 입니다. \n)",b,c,d,e,f);
}

*/


/* 똑같은 알고리즘으로 함수를 구현했더니...매인이 조잡해졌습니다.-_-; */









/* Ver.3 매인을 간략화 시키고 알고리즘의 변화를 주기 위해 건드렸다가 매인의 알고리즘이
함수에게로 놀러간것밖에 안되는군요. 본인의 알고리즘은 단시간에 변화되지 않나봅니다-_-; */

/*
#include<stdio.h>

int chun(a)
{
int b;
b=a/1000;
return b;
}

int obac(a,b)
{
int c;
c=(a-(1000*b))/500;
return c;
}

int bac(a,b,c)
{
int d;
d=(a-(1000*b)-(500*c))/100;
return d;
}

int osib(a,b,c,d)
{
int e;
e=(a-(1000*b)-(500*c)-(100*d))/50;
return e;
}

int sib(a,b,c,d,e)
{
int f;
f=(a-(1000*b)-(500*c)-(100*d)-(50*e))/10;
return f;
}

main()
{
int a,b,c,d,e,f;
printf("거스름돈의 양을 구하는 문제입니다.\n 거스름돈의 양을 입력하십시오.\n");
scanf("%d",&a);
b=chun(a);
c=obac(a,b);
d=bac(a,b,c);
e=osib(a,b,c,d);
f=sib(a,b,c,d,e);
printf("거스름돈은 1000원짜리 지폐 %d 장\n500원 짜리 동전 %d 개\n100원짜리 동전 %d 개\n 50원짜리 동전 %d 개\n 10원짜리 동전 %d개 입니다. \n)",b,c,d,e,f);
}


*/

728x90