关于C++数字组合类问题

一共有n个数字,每种数字有不定的个数,可以拿出任意个数字,使这些数字的和等于X,求出一共有多少种可能性
为简化流程,让每种数字的个数都是10个 现假设数字如下:50、60。70,80。90,100。110、120,130、140。假设所求和为5000
我想要达到的结果:每一次找到组合时,记录出每一种数字出现过的次数。
正文重复?不准连续使用逗号(,)所以上面拿数字隔开的时候只能混用

什么是每种数字?怎么分类?

提个一个递归解决的思路供参考:
1-把数据进行排序。
2-对排序后数据进行遍历,采用递归的方式来解决。这样就把n个值等于定值的问题转换成了n-1个值等于定值的问题,最终转化成了1个数等于某个定值的问题。
譬如第1个数字等于50,那么找50参与的组合就只需要找出后面n-1个数字中和为4950(=5000-50)的组合。依次递归下去

建议你看下这篇博客C++实现计算组合数(详细)