将100换成1元,5元,10元的零钱有多少种换法?
怎么编这个程序将100换成1元,5元,10元的零钱有多少种换法?
程序代码:#include <stdio.h>
int foo(int n, int cur)
{
if(n == 0)
return 1;
int arr[] = { 1, 5, 10 };
int count = 0;
for(int i = cur; i < sizeof arr/sizeof *arr; ++i)
{
if(n >= arr[i])
{
count += foo(n - arr[i], i);
}
}
return count;
}
int main(int argc, char *argv[])
{
printf("%d\n", foo(100, 0));
return 0;
}
计算结果是 121
