永发信息网

C语言简单回溯法不懂,请进

答案:1  悬赏:10  手机版
解决时间 2021-11-21 07:26
  • 提问者网友:锁深秋
  • 2021-11-20 11:00
C语言简单回溯法不懂,请进
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-11-20 11:29
#include"stdio.h"
#include"stdlib.h"

void Output(int *B,int n)
{
for(int i=1;i printf("%d",B[i]);
putchar('\n');
}

void Arrange_i(int X,int *B,int i,int N)//处理B的第i个盘子
{
if(i>N)//当i大于N 代表所有的盘子都处理完了 那就输出B
Output(B,N+1);
else
{

for(int k=1;k<=X;k++)
{
if(k!=B[i-1])
{
B[i]=k;
Arrange_i(X,B,i+1,N);
}
}
}
}
void Arrange(int X,int N)
{
int *B=(int *)calloc(N+1,sizeof(int));//B的0号单元留空 一直都为0
Arrange_i(X,B,1,N);
}
void main()
{
int X,N;
scanf("%d%d",&X,&N);
Arrange(X,N);

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯