5,530
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
const int n=10;
const double data[n]={300,310,320,330,340,349,280,220,200,260};//测试数据
double visit[n]={0};
double a[n]={0};
void dfs(int step)
{
double sum=0;
for (int i=0;i<step;i++)
{
sum+=a[i];
}
if ((sum>=958) && (sum<=962))
{
for (int i=0;i<step;i++)
{
printf("%.2f ",a[i]);
}
printf(" = %.2f\n",sum);
}
for (int i=0;i<n;i++)
{
if (visit[i]==0)
{
a[step]=data[i];
visit[i]=1;
dfs(step+1);
visit[i]=0;
}
}
}
void main()
{
dfs(0);
getchar();
}