100块钱,利用面值分别为1,5,10,20,50的零钱进行兑换,有多少可能性
#include <stdio.h>
int mianzhi[5] = {50, 20, 10, 5, 1};//面值
int count;
//left_money 剩余的钱
void change_money(int left_money, int mianzhi_num)
{
int i;
int all = left_money/mianzhi[mianzhi_num];
if(mianzhi[mianzhi_num]==1 || all == 0)
{
count++;
return;
}
for(i=all;i>=0;i--)
{
change_money(left_money-i*mianzhi[mianzhi_num], mianzhi_num+1);
}
}
int main()
{
int all_money;
scanf("%d", &all_money);
change_money(all_money, 0);
printf("%d\n", count);
}