给大家出一道题。
请问,一个数能拆成几个质数的和呢?
假设有一个数n(-10^6<n<10^6),能被拆成i个(正)质数,分别为A1,A2,A3,……,An,请输出所有可能的a1,2,a3……序列,并输出i的值,如果一个数不能拆成几个(正)质数的和,请输出“none”。
请大家在**讨论区**实现代码。
后续我会在洛谷上出一下这道题,大家可以做一下。
用DFS方法解决不定项列举问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注【相关推荐】
- 你可以看下这个问题的回答https://ask.csdn.net/questions/7749762
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:用DFS求连通块 深度优先搜索算法 油田问题
- 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 DFS思想动画演示小节, 巩固相关知识点
- 除此之外, 这篇博客: DFS算法解决数独问题中的 算法总结 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
不用设置那么麻烦的数据结构,直接利用dfs算法(前提是对该算法很熟悉并能灵活运用。)算法本身还要利用一个判断可能值是否合法的函数。Judeg函数中,对九宫格的判断不用分成九种情况讨论,要观察空格坐标的特点,直接分析出公式,可以提高时间复杂度,减少代码冗余度。
同时对dfs进行递归调用时,dfs((x + (y + 1) / 10), (y + 1) > 9 ? 1 : (y + 1));这里的参数设置就很巧妙,利用求模,直接用一个式子就对二维数组进行了遍历,非常的方便。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报