#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