搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 坤坤的编程世界 > 【深度优先搜索】练习题:填数字

【深度优先搜索】练习题:填数字

坤坤的编程世界 2020-08-02

填数字


这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

比如:

6+8/3+952/714就是一种解法,


这个算式一共有多少种解法?

    b     def 

a + - + --- = 10

    c     ghi


输出

输出一个整数,表示算式的解的总数。


答案:

#include <iostream>using namespace std;
int a[11],cnt;bool b[11];void dfs(int step){ if(step == 10 ) { float sum1 = a[2]; float sum2 = a[4] * 100 + a[5] * 10 + a[6]; float sum3 = a[7] * 100 + a[8] * 10 + a[9]; if(a[1] + sum1 / a[3] + sum2 / sum3 == 10)        { cnt++; } return; } for(int i = 1;i<=9;i++) { if(b[i] == 0) { a[step] = i; b[i] = 1; dfs(step + 1); b[i] = 0; } }}int main(){ dfs(1); cout<<cnt; return 0;}




版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【深度优先搜索】练习题:填数字》的版权归原作者「坤坤的编程世界」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注坤坤的编程世界微信公众号

坤坤的编程世界微信公众号:gh_a04d8ece67da

坤坤的编程世界

手机扫描上方二维码即可关注坤坤的编程世界微信公众号

坤坤的编程世界最新文章

精品公众号随机推荐