數(shù)的排列相加
/*事先聲明:本文是以深搜算法為基礎(chǔ)寫出,用于計算自然數(shù)以自然數(shù)組合相加的方法,編譯語言為C++,使用編輯器為DevC++ 5.11,如有侵權(quán)請及時聯(lián)系,會立即刪除。在未經(jīng)本人許可禁止用于商用,改寫,感謝支持!*/?
#include<bits/stdc++.h>
using namespace std;
int n=0,c[101]={ },z=1,t=0,s=0;
int cf(int a,int b){
for(int i=c[b-1];i<=a;i++){
if(i<n){c[b]=i;a-=i;
if(a==0){s++;cout<<"<"<<s<<">"<<" ";printf("%d=",n);
for(int o=1;o<b;o++){printf("%d+",c[o]);}
printf("%d\n",c[b]);}
else{cf(a,b+1);}a+=i;}}}
int main(){
c[0]=1;
cout<<"請輸入要組成的數(shù)(x<=70):";
cin>>n;
cf(n,1);
cout<<s;
return 0;}?
標簽: