1782: 和尚特烦恼8——找零钱
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 184 Solved: 104
Submit Status Web Board
Description
和尚在山上又耐不住寂寞了,嘴馋的要命,于是就拿了100块钱偷偷的下山买肉吃。和尚最爱吃红烧肘子了,但是和尚不会算数,请你帮和尚算算老板应该找他多少钱。并且和尚很懒,非得要求老板找他钱的张数是最少的。
假设老板那边有面值 50, 10,5,2,1无数张,请你帮和尚算算老板应该找他多少钱,钱张数最少是多少张。
Input
输入一个整数t,表示和尚花了t块钱。
Output
输出2个整数m和n,用空格隔开。表示老板找和尚m 块钱,最少的张数是n。
Sample Input
16
Sample Output
84 6
#include<stdio.h>
#include<string.h>
int min(int a,int b)
{
return a>b?b:a;
}
int dp[110];
int main()
{
int n,m,k,i,j;
int a[6]={1,2,5,10,50};
while(scanf("%d",&n)!=EOF)
{
m=100-n;
memset(dp,0x3f3f3f,sizeof(dp));
dp[0]=0;
for(i=0;i<5;i++)
{
for(j=a[i];j<=m;j++)
{
dp[j]=min(dp[j],dp[j-a[i]]+1);
}
}
printf("%d %d\n",m,dp[m]);
}
return 0;
}