给定一个整数要求拆分成整数之和。如 3 = 1 + 1 +1 = 1 + 2 = 3;
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
int print(int min, int max, char* buf,int buflen,int strlen)
{
for(int i = min; i <= max; i++)
{
if( i == max)
{
printf("%s%d\n",buf,i);
}
else {
int len = snprintf(buf+strlen,buflen - strlen, "%d+",i);
print(i,max - i,buf,buflen,strlen + len);
*(buf+strlen) = '\0';
}
}
string s = buf;
cout <<" strng = "<<s <<endl;
return 0;
}
int main()
{
int num = 4;
const int buflen = 1024;
char buf[buflen] = {0};
print(1,num,buf,buflen,0);
return 0;
}