<递归算法>10个硬币组合一角八分**
题目解析:硬币都有1,2,5分的,如果以分为单位,也就是说1,2,5,这三个数和值为18且正好是10个数相加。
定义两个容器 temp为 一个零时存数的,且长度为10.all是存n个temp的,用于保存结果
Recursive ()函数 是递归,找出所有满足条件的组合
SortAllEachLine()函数 把所有组合按从小到大排序
TakeOutSame() 函数 去掉所有重复的组合
Recursive () num 是 硬币的个数,COINS是和值
每次递归时,个数加1,和值加上1或2或5 把结果每次相加结果放入temp
退出条件:当个数为10个时,满足和值等于18把temp放入all,否则return
这样算出来的结果正好是1350种,其中肯定有重复的
遍历all,用冒泡排序把所有组合按从小到大排序,这样做是为了下一步 去除相同的组合
排序完成后,再次遍历all,删除重复的部分,因为已经排序好,所以两种组合之间,每个元素相同就说明他们是一样,这样就可以删除了
最后打印结果