递归算法-求解多元一次方程
递归算法---求解多元一次方程
/** * 求解x1+x2+x3+...+x10 = 10 的非负整数解 */ #include<stdio.h> static int ans_sum ; int n=10; int numx=10; int ans[10]; void print_ans() { int i; for (i = numx - 1; i >= 0; i--) { printf("%d ", ans[i]); } printf("\n"); } void solve(int n, int numx) { int i; if (n < 0) return; if (numx == 1) { ans_sum++; ans[numx - 1] = n; print_ans(); return; } for (i = 0; i <= n; i++) { ans[numx - 1] = i; solve(n - i, numx - 1); } } int main(int argc, char *argv[]) { solve(n,numx); printf("total :%d\n", ans_sum); return 0; }