九度OJ-テーマ1549:通貨問題
タイトルの説明:
額面は1元、2元、5元、10元、20元、50元であることが知られています.100元の货币は若干(无限多と考えられる)、価格xの物品を支払う必要があり、おつりが発生していないことを适切に支払う必要があります.求めて、少なくとも数枚の货币が必要で、支払いを完了することができます.例えば、支払い価格が12元の物品であれば、少なくとも1枚の10元と1枚の2元、つまり2枚の货币が必要で、支払いを完了することができます.
入力:
複数組のテストデータを入力し、各組に1つの整数p(1<=p<=1億1000万)しか含まれず、支払うべき品目の価格を入力します.
出力:
入力データのセットごとに、最小必要な通貨の枚数を表す整数が出力されます.
サンプル入力:
サンプル出力:
ソース:
2014年王道フォーラム研究生気試験練習試合(二)
額面は1元、2元、5元、10元、20元、50元であることが知られています.100元の货币は若干(无限多と考えられる)、価格xの物品を支払う必要があり、おつりが発生していないことを适切に支払う必要があります.求めて、少なくとも数枚の货币が必要で、支払いを完了することができます.例えば、支払い価格が12元の物品であれば、少なくとも1枚の10元と1枚の2元、つまり2枚の货币が必要で、支払いを完了することができます.
入力:
複数組のテストデータを入力し、各組に1つの整数p(1<=p<=1億1000万)しか含まれず、支払うべき品目の価格を入力します.
出力:
入力データのセットごとに、最小必要な通貨の枚数を表す整数が出力されます.
サンプル入力:
10
11
13
サンプル出力:
1
2
3
ソース:
2014年王道フォーラム研究生気試験練習試合(二)
#include <stdio.h>
int main()
{
int x,a,b,c,d,e,f,g;
while(scanf("%d",&x)!=EOF)
{
a=b=c=d=e=f=g=0;
a=x/100;
x-=a*100;
b=x/50;
x-=b*50;
c=x/20;
x-=c*20;
d=x/10;
x-=d*10;
e=x/5;
x-=e*5;
f=x/2;
x-=f*2;
g=x/1;
x-=g*1;
printf("%d
",a+b+c+d+e+f+g);
}
return 0;
}
/**************************************************************
Problem: 1549
User: vhreal
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/