指定整數陣列中輸出和為一整數的所有組合
阿新 • • 發佈:2018-12-25
題目:編寫一個函式,在陣列a[10] = {1,3,5,7,9,11,13,15,17}中輸出和為25的所有整數組合
思想:遞迴,探底一種情況後返回前一種狀態。
程式碼:
#include <stdio.h> #include <string.h> char a[10] = {1,3,5,7,9,11,13,15,17}; char b[10]; void f(int n) { static int n1 = 0; static int n2 = -1; int i; int j; for(i = n1;i < 10;i++) { if(n > a[i]) { n1 = i+1; n2++; b[n2] = a[i]; n -= a[i]; f(n); n += a[i]; n2--; } else if(n == a[i]) { n2++; b[n2] = a[i]; for(j = 0;j <= n2;j++) { printf("%d ",b[j]); } printf("\n"); n2--; return; } else { return; } } } int main() { f(25); return 0; }