#include <stdio.h> //100元划分
int a[] ={1,10,20,50,100};
int q(int n,int m)//n为100元,m为数组的下标
{
if(n<1||a[m]<1) return 0;
if(n==1||a[m]==1) return 1;
if(n<a[m]) return q(n,m-1);
if(n==a[m]) return q(n,m-1)+1;
return q(n,m-1)+q(n-a[m],m);
}
int main()
{
int m=4;
printf("%d\n",q(100,m));
return 0;
}原文地址:http://blog.csdn.net/whk100312/article/details/36048319