dfs深度优先搜索

dfs深度优先搜索,第1张

dfs深度优先搜索 特点:

递归,不撞南墙不回头。

大致框架
void dfs(int step){

if(判断边界) {达到边界时return}

尝试每一种可能 for(i=0;i 
具体例子 

OOO+OOO=OOO,O中分别填入1-9使等式成立(用c语言实现)

 

//深度优先搜索介绍
//auther gaofeimax
#include 
int n,book[10],a[20],total;

int sum(int t){
	return 100*a[t]+10*a[t+1]+a[t+2];
}




void dfs(int step){
	int sum(int t);
	int i;
	if(step==9){
		if(sum(0)+sum(3)==sum(6)){
			total++;
			return;
		}
	}
	else{
		for(i=1;i<=9;i++){
			if(book[i]==0){
				book[i]=1;
				a[step]=i;
				dfs(step+1);
				book[i]=0;
			}

		}
		return;
	}

}


int main(){
dfs(0);
printf("%d",total/2);
return 0;
}
		

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5692604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存