</pre><pre name="code" class="cpp">//整数划分问题,输出
#include <stdio.h>
int mark[256];
int n;
void DFS(int sum,int k,int prio)
{
if(sum > n)
return;
if(sum == n)
{
int i;
for( i = 0; i < k-1; i++)
printf("%d+",mark[i]);
printf("%d\n",mark[i]);
}
else
{
for(int j = prio; j > 0; j--)
{
mark[k]=j;
sum+=j;
DFS(sum,k+1,j);
sum-=j; //恢复现场
}
}
}
int main()
{
scanf("%d",&n);
DFS(0,0,n-1);
return 0;
}
整数划分,输出
最新推荐文章于 2022-05-01 14:41:55 发布