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