哪位可以提供一下这个问题的解题思路,自己思考的实在没有头绪,可以让自己理解一下
代码和测试截图如下,望采纳
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
using namespace std;
int n;
int f[1001],a[1001],cnt;
int main() {
cin>>n;
f[0]=1;
for (int i=1;i<=n;i++) {
for (int j=0;j<=n;j++) {
if(j<i) continue;
f[j]+=f[j-i];
}
}
cout<<f[n]/6<<endl;
for (int i=1;i<=n;i++)
for (int j=i;j<=n;j++)
for (int k=j;k<=n;k++)
if(i+j+k==n)
printf("%d=%d+%d+%d\n",n,i,j,k);
return 0;
}