题解 | #放苹果#
放苹果
https://www.nowcoder.com/practice/4f0c1e21010e4d849bde5297148e81d9
//二话不说直接回溯 #include <iostream> #include <vector> using namespace std; int result = 0; void backTracking(int n ,int m,int index) { //控制回溯的收集过程 if (m == 0) { result++; return; } for (int i = index; i <= m; i++) { if (n == 0) continue; backTracking(n - 1, m - i,i);//回溯要减去已经选过的,盘子数也要减少 } } int main() { int m, n; cin >> m >> n; backTracking(n, m,1); cout << result; } // 64 位输出请用 printf("%lld")