问题:
3
2+1
1+1+1
解决:
采用递归的方式进行求解
#include <stdio.h> void f(int n, int a[], int k) { if(n<=0){ for(int i=0; i<k; i++) printf("%d ", a[i]); printf("\n"); return; } for (int i = n; i > 0; --i) { if(k>0 && i>a[k-1]) continue; a[k]=i; //printf("**a[%d] = %d\n", k, i); f(n-i, a, k+1); } } int main(int argc, char const *argv[]) { int a[100]; f(3, a, 0); return 0; }
3
2 1
1 1 1
请按任意键继续. . .
时间: 2024-10-13 04:02:10