1、ios
所有放在一個函數中完成測試。數組
2、函數
3、測試
4、spa
#include<iostream> using namespace std; void PrintAll(int a[], int nBegin, int nEnd, int nCount,string szPre) { if(nCount==1) { for(int i=nBegin; i<=nEnd; i++) { cout<<szPre<<a[i]<<" "; } cout<<endl; } else { for(int i=nBegin; i<=nEnd-nCount+1; i++) { string szBuf; szBuf=szPre+to_string(a[i]); PrintAll(a, i+1, nEnd, nCount-1, szBuf); } } } int main() { int a[] = {1,2,3,4,5,6}; PrintAll(a, 0, 5, 3, ""); return 0; }
遞歸求解3d
5、blog
#include<iostream> using namespace std; int MaxSub(int a[],int lenth) { //純粹的動態規劃問題,n長的數組要麼由大於0的n-1子數組的和加上最後一個數組成, //要麼因爲前面的數小於0由最後一個數構成, n-1的子數組一樣有這樣的結構 int sum=0; int tmp=0; for(int i=0;i<lenth;i++) { if(tmp<0) tmp=a[i]; else tmp+=a[i]; if(tmp>sum) sum=tmp; } return sum; } int main(){ int a[]={-2,11,-4,13,-5,-2}; cout<<MaxSub(a,6); return 0; }
#include<iostream> using namespace std; int MaxSub(int a[],int lenth) { int dp[6]; int Sum=0; for(int i=0;i<6;i++) dp[i]=a[i]; for(int i=1;i<lenth;i++) { dp[i]=max(dp[i-1]+a[i],dp[i]); cout<<dp[i]<<" "; if (dp[i]>Sum) { Sum=dp[i]; } } cout<<endl; return Sum; } int main() { int a[]={-2,11,-4,13,-5,-2}; cout<<MaxSub(a,6); return 0; }
六遞歸
七string